【问题标题】:Can you alter the polling time interval (5 seconds) for delayed_job worker?你能改变delayed_job worker的轮询时间间隔(5秒)吗?
【发布时间】:2023-03-24 07:10:01
【问题描述】:

延迟工作很棒,但我想将其计时器间隔更改为更频繁(每 2 秒)以满足我的特殊需要。

是否有任何配置或硬编码可以更改它?

【问题讨论】:

  • 您应该接受答案以给予善良的回答者信用。

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


【解决方案1】:

好的,只要去RAILS_ROOT/vendor/plugins/delayed_job/lib/delayed/worker.rb,找行

self.sleep_delay = 5

并将其更改为

self.sleep_delay = 2

或任何你想要的

在早期版本的 DJ 上,我将其设置为低至 0.1,以便队列中的作业几乎立即被拾取进行处理,并且运行良好。

【讨论】:

  • 如果我以 gem 方式安装它,如何更改延迟? gem 'delayed_job', 有什么办法不修改gemfile,而是在config中修改?
  • 在你的 RAILS_ROOT/config/initializers/delayed_job_config.rb 中试试这个 Delayed::Worker::sleep_delay = number_of_seconds #
【解决方案2】:

尝试设置

Delayed::Worker.const_set("SLEEP", 2)

在您的 config/initializers/delayed_job_config.rb 文件中。

【讨论】:

    【解决方案3】:

    使用 DJ 3.0,您可以将其添加到 config/initializers/delayed_job_config.rb 文件中:

    Delayed::Worker.sleep_delay = 2
    

    【讨论】:

    • 我将Delayed::Worker.sleep_delay = ENV['DELAYED_WORKER_SLEEP_DELAY'] || Delayed::Worker.sleep_delay 添加到config/initializers/delayed_job_config.rb 以便能够通过环境变量控制延迟(在development 我将轮询频率降低到60 秒;在@987654327 @ 和 production 我什至没有设置它,从而保持默认值 5 秒)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多