2010-06-10 7 views
9

Quiero usar Delayed :: Job (o tal vez una cola de trabajos más adecuada para mi problema) para despachar trabajos a múltiples daemons de fondo.Usar Delayed :: Job para administrar varias colas de trabajos

Tengo varios demonios de fondo que llevan a cabo diferentes responsabilidades. Cada uno está interesado en diferentes trabajos en la cola de la aplicación Rails. ¿Es posible usar Delayed :: Job, o tal vez hay una cola de trabajos diferente que se ajusta mejor a esta tarea?

Respuesta

0

Los trabajadores de DJ solo toman el primer trabajo de la cola (solo hay uno) y lo hacen. Cada trabajador es el mismo que cualquier otro. Puede ejecutar varios trabajadores, pero todos trabajarán desde la misma cola.

6

Si te gusta el trabajo retrasada, que sería lo suficientemente simple para crear varias tablas, una por cada cola de

El trabajador recibe su nombre de la tabla de

class Job < ActiveRecord::Base 
    MAX_ATTEMPTS = 25 
    MAX_RUN_TIME = 4.hours 
    set_table_name :delayed_jobs 

por lo que podría editar eso y crear una migración por mesa Y luego, cuando inicie sus trabajos, comenzará un trabajador por cola.

Fuente: http://github.com/tobi/delayed_job

4

Resque es una biblioteca de cola de trabajos que soporta múltiples colas.

1

respuesta está aquí:

Delayed_job - Multiple parallel queues?

Utilice la opción -i en delayed_job (en lugar de la opción -n utilizado para el desove varios trabajadores) para establecer un identificador único para cada trabajo.

Cuestiones relacionadas