delayed_job一次在多个worker上处理同一个命名队列

时间:2013-07-10 15:41:34

标签: ruby-on-rails delayed-job

我有不同的对象。

A  B  C

每个对象都有不同的工作要处理。

A  B  C
1  1  1
2  2  2
3  3  3

我有多个delayed_job工作人员处理我的工作。我不想为它们分配队列,因此每个工作人员都可以为每个对象处理作业,因为没有规则来确定哪个对象可以启动作业。

所以队列看起来像这样

A3 B2 C3 C1 C2 A2 A1 B3

任何对象的任何作业都可以随时添加到队列中,并且可以由任何工作者处理,但是,由于对象特征,任何对象只能同时有一个活动作业。

这是否可以延迟工作?

1 个答案:

答案 0 :(得分:0)

延迟作业根据run_at时间字段以类似FIFO的方式工作。它将处理最长时间应该运行的那个。如果您需要按特定顺序完成任务,可以手动指定run_at时间以满足您的需求,但DJ不会为您处理此事。