我有以下代码:
Converter.delay.convert("some params")
现在我想让这份工作最多运行1分钟。如果超出,延迟的工作应该引发异常。
我尝试过设置
Delayed::Worker.max_run_time = 1.minute
但似乎它会对工作人员设置超时,而不是在工作中。
转换器类在RAILS_ROOT / lib / my_converter.rb
中定义答案 0 :(得分:0)
工作本身超时
require 'timeout'
class Converter
def self.convert(params)
Timeout.timeout(60) do
# your processing
end
end
end
答案 1 :(得分:0)
Delayed::Worker.max_run_time=1.minute
给予工人的每项任务的最长时间。任何任务的执行都需要超过指定我们将异常引发为。
execution expired (Delayed::Worker.max_run_time is only 1 minutes)
工人继续运行并处理下一个任务。