2011-03-18 12 views
5

Tengo una aplicación que estoy migrando de Ruby a JRuby (debido a la necesidad de un mejor soporte de seguridad del servicio web a través de Java). Una de las gemas que uso es daemons para crear un trabajo en segundo plano.Ruby daemons y JRuby - opciones alternativas

El problema es que usa fork + exec para crear el proceso de fondo, pero eso es un no-no con JRuby.

Entonces, ¿hay una gema/envoltura alternativa para crear trabajos en segundo plano?

Mis pensamientos actuales son simplemente llamar rastrillo de un script de shell y dejar la tarea rake correr para siempre ...

Gracias de antemano, Chris.

ACTUALIZACIÓN está usando actualmente un par de Java enhebrar envoltorios relacionados, a saber https://github.com/jmettraux/rufus-scheduler y https://github.com/philostler/acts_as_executor

Respuesta

3

Dado que no se puede bifurcar en JRuby básicamente se queda con tener que refactorizar su código daemon para que el daemon se pueda ejecutar como una aplicación de primer plano estándar y luego crear un lanzador de daemon separado que ejecutará y generará el daemon en segundo plano. Puedes mirar spoon y también verificar esto gist que usa una cuchara para crear un lanzador más elaborado. También jruby-jsvc proporciona el pegamento para usar jsvc con un daemon JRuby.

+0

Gracias, se ven interesantes. –

+0

Intenté hacer algo con una cuchara, pero al final no valía la pena el gasto de rubí (por la velocidad), solo usé un script bash y parece estar funcionando muy bien hasta ahora. – mrbrdo

3

Usted puede estar interesado en http://torquebox.org/ que incluye la programación.

+0

Astucia: me había olvidado de eso. Gracias. –

2

Creé una joya para la creación fácil de Ruby & JRuby daemons: raad (Ruby como daemon). Funciona de manera idéntica con MRI Ruby o JRuby, simple, ligero, transparente.

Cuestiones relacionadas