【问题标题】:How can I keep a Delayed_Job task from failing with "execution expired"如何防止 Delayed_Job 任务因“执行已过期”而失败
【发布时间】:2011-06-24 06:02:48
【问题描述】:

我认为既然它是一个后台进程,就不会有任何形式的超时。我使用delayed_job 在后台运行报告。非常大的、长时间运行的报告因此消息而失败。

我正在使用 Phusion Passenger 在 Apache2 上运行 Rails 2.3.5。

【问题讨论】:

    标签: ruby-on-rails delayed-job


    【解决方案1】:

    来自delayed_jobs faq wiki page on github

    # config/initializers/delayed_job_config.rb
    Delayed::Job.destroy_failed_jobs = false
    silence_warnings do
      Delayed::Job.const_set("MAX_ATTEMPTS", 3)
      Delayed::Job.const_set("MAX_RUN_TIME", 5.minutes)
    end
    

    您希望增加 MAX_RUN_TIME。默认值为 4 小时,因此您可能希望将其设置为 6.hours 或更长的时间。它应该是您认为该工作应该花费的最长,但这显然是特定于应用程序/工作的,您可能知道可接受的最长时间是多少。

    【讨论】:

    • 天啊! RTFM 再次来袭。非常感谢布雷特!
    • 我一直在做同样的事情,没问题。祝你好运!
    • gem 的自述文件已移动,您可以在gory details 中阅读有关max_run_time 的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2020-05-15
    • 1970-01-01
    • 2019-06-29
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多