Pergunta

Quero usar o atraso :: Job (ou talvez uma fila de emprego mais apropriada para o meu problema) para despachar trabalhos para vários daemons de fundo.

Eu tenho vários daemons de fundo que cumprem diferentes responsabilidades. Cada um está interessado em empregos diferentes na fila do aplicativo Rails. Isso é possível usando o atraso :: Job, ou talvez exista uma fila de empregos diferente que seja melhor essa tarefa?

Foi útil?

Solução

Desde então http://github.com/collectiveidea/delayed_job Atingiu a v3.0 e inclui filas nomeadas! Excelente para necessidades simples de fila agrupadas.

Outras dicas

Se você gosta do trabalho atrasado, seria simples o suficiente para criar várias tabelas, uma por fila

O trabalhador recebe seu nome de tabela de

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

Assim, você pode editar isso e criar uma migração por tabela. E então, quando você iniciar seu trabalho, começará um trabalhador por fila.

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

Resque é uma biblioteca de filas de emprego que suporta várias filas.

A resposta está aqui:

Touched_job - múltiplas filas paralelas?

Use a opção -i em atraso_job (em vez da opção -n usada para desova vários trabalhadores) para definir um ID exclusivo para cada trabalho.

Os trabalhadores do DJ apenas pegam o primeiro emprego na fila (há apenas um) e o fazem. Cada trabalhador é o mesmo que qualquer outro. Você pode administrar vários trabalhadores, mas todos eles funcionarão na mesma fila.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top