[英]Is it possible to reset the timeout of a delayed job in rails?
我有一個運行幾個步驟的延遲工作。 每當一個步驟完成時,我想重置超時。
是否可以?
例如
# config/initializers/delayed_job_config.rb
Delayed::Worker.max_run_time = 5.minutes
# app/jobs/my_process_job.rb
class MyProcessJob < ApplicationJob
def perform
`sleep 4m` # step 1
# reset timeout
`sleep 4m` # step 2
puts 'done'
end
end
查看Delayed Job中超時是如何實現的,如果不修改 Delayed Job 是不可能重置超時的。 但是,您可以改為執行以下操作
# config/initializers/delayed_job_config.rb
Delayed::Worker.max_run_time = 10.minutes
# app/jobs/my_process_job.rb
class MyProcessJob < ApplicationJob
def perform
Timeout.timeout(5.minutes.to_i) {
`sleep 4m` # step 1
}
Timeout.timeout(5.minutes.to_i) {
`sleep 4m` # step 2
}
puts 'done'
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.