【发布时间】:2015-06-29 19:28:57
【问题描述】:
默认情况下,sidekiq 将重试任何抛出异常的作业。没事儿。但是,我希望能够捕获该异常,以便我的异常处理程序不会收到通知,然后重试该作业。我如何在反应中做到这一点?
所以我的代码如下所示:
def perform
...
rescue ExcClass => ex
# log
end
但我实际上想重试该工作。
【问题讨论】:
标签: ruby-on-rails sidekiq
默认情况下,sidekiq 将重试任何抛出异常的作业。没事儿。但是,我希望能够捕获该异常,以便我的异常处理程序不会收到通知,然后重试该作业。我如何在反应中做到这一点?
所以我的代码如下所示:
def perform
...
rescue ExcClass => ex
# log
end
但我实际上想重试该工作。
【问题讨论】:
标签: ruby-on-rails sidekiq
将您的错误服务客户端配置为忽略 ExcClass。 Sidekiq 将重试,您不会收到错误报告。
【讨论】:
如果我正确地关注了你的问题,听起来你可能想要一个自定义错误处理程序来做你想做的事:
Sidekiq.configure_server do |config|
config.error_handlers << Proc.new {|exception,context_hash| MyErrorService.notify(exception,context_hash) }
end
默认情况下,Sidekiq 将继续自动重试您的作业。
这是否回答了您的问题?这有点令人困惑。 Here are the docs 我从中提取了上述信息。
【讨论】: