我如何在Sidekiq杀死工作需要很长时间才能完成

时间:2014-08-17 20:47:46

标签: ruby-on-rails jobs sidekiq job-scheduling

我有工作需要2个多小时才能完成。我想花点时间限制它需要多长时间。我该怎么办?

2 个答案:

答案 0 :(得分:6)

使用Timeout::timeout包装逻辑,如果您不希望在超时后重试该作业,则禁用重试。

class RunsTooLongWorker
  include Sidekiq::Worker

  sidekiq_options :retry => false

  def perform(*args)
    Timeout::timeout(2.hours) do
      # do possibly long running task
    end
  end
end

答案 1 :(得分:0)

如果花费太长时间,请使用Ruby的超时库来引发错误。