【问题标题】:How can I speed up my Rails DelayedJobs time to start?如何加快 Rails DelayedJobs 的启动时间?
【发布时间】:2015-03-18 22:51:13
【问题描述】:

我正在使用 Rails / Delayed Jobs,在 Heroku 上使用 Rails 4.1。我注意到我的工作需要 1 秒到 10 秒才能真正开始。一旦开始,它们就会跑得很快。

如何加快速度?

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

我确实还有其他一些正在进行的工作,但没有那么多,所以看起来这不是原因。检查运行作业的频率似乎有点滞后。

【问题讨论】:

  • 我相信延迟作业使用轮询来查找要运行的作业。也许有轮询间隔的配置?

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


【解决方案1】:

我认为您想要配置 Delayed::Worker.sleep_delay,这在延迟作业 README 中有所暗示。如果延迟的工作找不到工作,那么它会在重新查找之前休眠这么多秒。默认睡眠时间为 5 秒。

因此,您可以在config/initializers/delayed_job.rb 中设置以下内容,以便在查询未决作业之间仅休眠 2 秒。

Delayed::Worker.sleep_delay = 2

显然,权衡是在没有任何事情发生时更频繁地轮询工作。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    相关资源
    最近更新 更多