【问题标题】:Ruby on Rails: Delayed Job is it possible to execute one job then stop?Ruby on Rails:延迟作业是否可以执行一项作业然后停止?
【发布时间】:2014-08-29 21:13:15
【问题描述】:

我想一次只发送一封电子邮件,所以我每分钟都有一个脚本。是否可以只发送一封电子邮件,然后阻止延迟的作业发送下一个排队的作业?

【问题讨论】:

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


    【解决方案1】:

    在将下一个作业放入队列之前,您可以查看已在队列中的最后一个作业,并检查它是 run_at 时间。然后将您的工作的run_at 时间设置为一分钟后。如果队列中没有作业,请将其设置为现在或一分钟后,具体取决于您需要在大约一分钟之间设置的严格程度。

    【讨论】:

      【解决方案2】:

      您可以从 DJ 的表本身获取一项特定的作业,调用它然后销毁它,例如:

      job = Delayed::Job.last
      job.invoke_job # This will NOT destroy the job
      job.destroy
      

      在这里找到它:https://groups.google.com/forum/#!topic/delayed_job/5j5BmAlXN3g

      【讨论】:

      • 增加每个工作之间的时间如何?而不是每个工作都背靠背排队,我更喜欢延迟 10 秒或类似的东西
      猜你喜欢
      • 1970-01-01
      • 2013-05-01
      • 2013-12-07
      • 1970-01-01
      • 2013-03-05
      • 2017-11-09
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      相关资源
      最近更新 更多