我有工作需要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的超时库来引发错误。