如何加快Rails延迟作业的开始时间?

时间:2015-03-18 22:51:13

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

我正在使用Rails /延迟作业,在Heroku上使用Rails 4.1。我注意到我的工作需要1秒到10秒才能真正启动。一旦他们开始,他们跑得很快。

我怎样才能加快速度?

我用my_thing.delay.run打电话给他们!

我还有其他正在进行的工作,但其中并没有那么多,所以看起来并不是原因。它看起来经常工作的频率似乎很低落。

1 个答案:

答案 0 :(得分:2)

我认为您要配置Delayed::Worker.sleep_delay,这是在延迟作业README中暗示的。如果延迟工作找不到工作,那么它会在再看一次之前睡了好几秒钟。默认睡眠时间为5秒。

因此,您可以在config/initializers/delayed_job.rb中将以下内容设置为仅在对待处理作业的查询之间休眠2秒。

Delayed::Worker.sleep_delay = 2

显然,在没有任何进展的情况下,权衡更为频繁的就业机会。

此外,如果您不再坚持延迟工作,那么您可能会发现resque或特别是sidekiq可能会比延迟工作更快地处理您的工作。