delayed_job rake任务参数和并发

时间:2014-01-03 09:14:01

标签: ruby-on-rails ruby delayed-job

documentation表示可以使用rake任务调用延迟的作业工作者:rake jobs:workQUEUE=queue1 rake jobs:work,如果您希望它在特定队列上工作。

关于这种调用工作的方式,我有几个问题:

  1. 有没有办法传递其他参数,例如sleep-delayread-ahead(就像使用脚本启动工作人员一样:delayed_job start --sleep-delay 30 --read-ahead 500 --queue=queue1)?
  2. 如果使用rake任务在同一队列上启动2个worker,处理速度是否有任何提升?

2 个答案:

答案 0 :(得分:1)

回答1. - 是的,您可以设置睡眠延迟并从命令行预读。你可以通过环境变量来实现:

QUEUE=queue1 SLEEP_DELAY=1 rake jobs:work
例如,

。请参阅this commit。

答案 1 :(得分:0)

rake jobs:work只是为了结束另一个工人,为了发展目的或在一个大的队列中工作(尽管你有rake jobs:workoff)的一种手段,所以所有的好处和免责声明工人申请,

两个作业并行处理,所以如果你有cpu能力,你的队列将更快地工作

我不知道#1这个问题,但可能rake jobs不打算在开发之外使用