可以延迟工作聆听'对于SIGTERM?

时间:2016-10-30 00:25:47

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

我在Heroku上有长期工作,而且由于dynos每24小时自动重启一次,我不想让它中断我的一些长期工作(4个多小时)。

理想情况下,我可以以某种方式“倾听”#39;对于SIGTERM,如果作业检测到,它会快速中止循环并退出作业,以便下一个工作人员可以重新运行它。

这是一份样本工作:

class SMSPaymentDueSoonJob

  def max_attempts
    1
  end

  def perform
    User.find_in_batches(batch_size: 1000) do |users|

      #... do complicated work on 500,000 rows here ..

      User.where(id: successful_ids).update_all(sms_reminder_sent_at: Time.now.utc)
    end
  end

end

0 个答案:

没有答案
相关问题