我正在 Heroku 上使用 Rails/Delayed Jobs,以及 Rails 4.1。我注意到我的工作需要 1 秒到 10 秒才能真正开始。一旦他们开始,他们跑得很快。
如何加快速度?
我正在用 my_thing.delay.run 给他们打电话!
我确实还有其他一些正在进行的工作,但数量并不多,所以这似乎不是原因。它只是检查运行作业的频率似乎存在滞后。
最佳答案
我认为您想要配置延迟作业 README 中暗示的 Delayed::Worker.sleep_delay
。如果延迟的工作找不到工作,那么它会休眠这么多秒,然后再重新寻找。默认 sleep 时间为 5 秒。
因此,您可以在 config/initializers/delayed_job.rb
中将以下内容设置为在待处理作业的查询之间仅休眠 2 秒。
Delayed::Worker.sleep_delay = 2
显然,权衡是在没有任何事情发生时更频繁地轮询工作。
此外,如果您不喜欢延迟工作,那么您可能会发现 resque或者特别是sidekiq可能会比延迟的工作更快地处理您的工作。
关于ruby-on-rails - 如何加快 Rails 延迟作业的启动时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134177/