【问题标题】:Delayed::Job run_at not being honored in cucumber testDelayed::Job run_at 在黄瓜测试中没有得到尊重
【发布时间】:2016-09-09 21:19:59
【问题描述】:

我正在运行一个现有的黄瓜套件,该套件执行将延迟作业排入队列的代码,其中不包含任何“run_at”条件。但是,我现在介绍了一项将来会与“run_at”一起排队的工作,它完全符合我的要求。但是,当我使用我的新功能时,我发现这项工作正在立即执行。

我在安装文件中发现了这行颇有希望的行:

# Run all delayed jobs inline
Delayed::Worker.delay_jobs = false

我希望将值更改为 true 会有所帮助,但这会导致无法运行任何作业。

那么,如何让 run_at 得到尊重,并且在其他作业入队后仍然可以运行?

【问题讨论】:

    标签: ruby cucumber delayed-job


    【解决方案1】:

    所以,这现在是有道理的。 “Delayed::Worker.delay_jobs = false”导致作业内联执行。将其设置为 true 会将作业放入数据库中。 . .他们永远坐在那里,因为我没有任何东西可以解决它们!

    【讨论】:

      【解决方案2】:

      DelayedJob 4.1.0 now supports Delayed::Worker.delay_jobs 是一个块。

      你可以这样做:

      Delayed::Worker.delay_jobs = ->(job) {
        job.run_at && job.run_at > Time.now.utc
      }
      

      【讨论】:

        猜你喜欢
        • 2017-10-13
        • 2020-12-19
        • 1970-01-01
        • 2010-11-01
        • 1970-01-01
        • 2016-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多