Ruby on rails 轨道5+;ActiveJob+;Sidekiq:重试10次后停止并记录错误

Ruby on rails 轨道5+;ActiveJob+;Sidekiq:重试10次后停止并记录错误,ruby-on-rails,sidekiq,rails-activejob,Ruby On Rails,Sidekiq,Rails Activejob,尝试对一个作业进行编程,该作业在重试10次后(从所有异常类型中)将报告失败并终止。不能让它工作。我也试过了。两者都不起作用。 最好的解决方案是从perform方法中访问retry\u count。我想你想要的是sidekiq\u retries\u expensed钩子。一旦您重试完毕,它将被调用,作业将移动到死队列。只需将重试次数设置为10并实现该钩子 config.death\u处理程序也可能很有趣 请参阅此处的文档:这是否适用于ActiveJob?我不使用include Sidekiq::

尝试对一个作业进行编程,该作业在重试10次后(从所有异常类型中)将报告失败并终止。不能让它工作。我也试过了。两者都不起作用。
最好的解决方案是从
perform
方法中访问
retry\u count

我想你想要的是
sidekiq\u retries\u expensed
钩子。一旦您重试完毕,它将被调用,作业将移动到死队列。只需将重试次数设置为10并实现该钩子

config.death\u处理程序也可能很有趣


请参阅此处的文档:

这是否适用于ActiveJob?我不使用
include Sidekiq::Worker
在我看来,您需要的解决方案来自您已经查看过的同一个线程,但是您没有使用retry\u on()尝试的线程。您可以在StandardError上重试以捕获所有异常,并传递一个在重试结束后将调用的块。如果希望作业最终进入死队列,则从块中重新引发错误,并在sidekiq级别将retry设置为false。如果您想让我编辑我的答案,请告诉我。在StandardError上重试是个好主意!我要试一试。非常感谢。