我想使用Delayed :: Job(或者更合适的作业队列来解决我的问题)将作业分派给多个后台守护进程。
我有几个背景守护进程执行不同的职责。每个人都对Rails应用程序中队列中的不同作业感兴趣。这是否可以使用Delayed :: Job,或者可能有一个更适合此任务的不同作业队列?
答案 0 :(得分:8)
此后http://github.com/collectiveidea/delayed_job已达到v3.0并包含已命名的队列!非常适合简单的分组队列需求。
答案 1 :(得分:6)
如果您喜欢延迟作业,那么创建多个表(每个队列一个
)就足够简单了工作人员从
获取它的表名class Job < ActiveRecord::Base
MAX_ATTEMPTS = 25
MAX_RUN_TIME = 4.hours
set_table_name :delayed_jobs
所以你可以编辑它并为每个表创建一个迁移。然后当你开始工作时,你将为每个队列启动一个工作人员。
答案 2 :(得分:4)
Resque是一个支持多个队列的作业队列库。
答案 3 :(得分:1)
答案在这里:
Delayed_job - Multiple parallel queues?
在delayed_job中使用-i选项(而不是用于生成多个worker的-n选项)为每个作业设置唯一ID。
答案 4 :(得分:0)
DJ工作人员只是从队列中抓取第一份工作(只有一份)并且做到了。每个工人都与其他工人相同。您可以运行多个工作程序,但它们都可以在同一个队列中工作。