我有一种特定类型的工作,我希望它比默认的Sidekiq时间间隔更频繁地重试。目前是否可以实现?理想情况下,该任务会每5秒钟重试一次,最多重试一分钟。不确定这是不是当前可以轻松插入到Sidekiq任务中的内容。
我有一种特定类型的工作,我希望它比默认的Sidekiq时间间隔更频繁地重试。目前是否可以实现?理想情况下,该任务会每5秒钟重试一次,最多重试一分钟。不确定这是不是当前可以轻松插入到Sidekiq任务中的内容。
根据:https://github.com/mperham/sidekiq/wiki/Error-Handling,您可以这样做:
class Worker
include Sidekiq::Worker
sidekiq_retry_in do |count|
5
end
end
sidekiq_retry_in do |_count|
10.minutes
end
我正在回答的问题是,如果在块中调用10.minutes
是否有效,因为我无法对答案进行评论。
根据Sidekiq代码,您需要传递一个整数,或者使用:kill
或:discard
符号。
10.minutes
返回ActiveSupport :: Duration
的实例
这意味着以下内容将起作用:
class Worker
include Sidekiq::Worker
sidekiq_retry_in { 10.minutes.to_i }
end