如何使用 ActiveJob 和 Sidekiq 限制失败的作业重试计数器?
How to limit the failed job retry counter with ActiveJob and Sidekiq?
当使用 ActiveJob
和 Sidekiq
作为适配器的作业失败时,我想限制 retries
的数量。
使用 Sidekiq,我可以做到:
class LessRetryableWorker
include Sidekiq::Worker
sidekiq_options :retry => 5
def perform(...)
end
end
Sidekiq 配置不提供全局 retry
配置。每个 Worker 负责设置 retry
选项。所以我想我必须在 ActiveJob 端实现它才能正确执行它。
Sidekiq
提供服务器级别的配置来处理这种情况。
来自 Sidekiq
ruby-doc:
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add Middleware::Server::RetryJobs, :max_retries => 7
end
end
当使用 ActiveJob
和 Sidekiq
作为适配器的作业失败时,我想限制 retries
的数量。
使用 Sidekiq,我可以做到:
class LessRetryableWorker
include Sidekiq::Worker
sidekiq_options :retry => 5
def perform(...)
end
end
Sidekiq 配置不提供全局 retry
配置。每个 Worker 负责设置 retry
选项。所以我想我必须在 ActiveJob 端实现它才能正确执行它。
Sidekiq
提供服务器级别的配置来处理这种情况。
来自 Sidekiq
ruby-doc:
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add Middleware::Server::RetryJobs, :max_retries => 7
end
end