如何从RSpec访问Sidekiq的death_handlers
?config/initializers/sidekiq.rb
Sidekiq.configure_server do |config|
# ...
config.death_handlers << lambda { |job, ex|
throw "Retries exhausted on #{job['class']} #{job['jid']}: #{ex.inspect}."
}
end
已尝试将recommendations用于ActiveJob的retry_on
,但未成功。
还尝试了within_sidekiq_retries_exhausted_block
或rspec-sidekiq
,但失败,因为作业类没有此方法。
1条答案
按热度按时间gywdnpxw1#
要测试
death_handler
行为,我建议在本地使作业失败,然后检查标准输出,看看death_handler
proc是否按预期运行。你可以在本地运行Sidekiq,然后同时运行一个你知道会失败的作业(可能通过你的rails控制台)(你可以在
perform
方法中引发异常),你应该在rails控制台窗口中看到death_handler
proc的输出。关于你的陈述:
还在rspec-sidekiq的_sidekiq_retries_exhausted_block内尝试,但失败,表示作业类没有此方法。
这是因为ActiveJob不支持
sidekiq_retries_exhausted
块,因此,用于测试sidekiq_retries_exhausted
块的within_sidekiq_retries_exhausted_block
方法不会测试任何内容。