捕获异常,但使用Sidekiq重试

时间:2015-06-29 19:28:57

标签: ruby-on-rails sidekiq

默认情况下,sidekiq将重试任何引发异常的作业。那样就好。但是,我希望能够捕获该异常,以便我的异常处理程序不会得到通知,然后重试该作业。我如何做出反应?

所以我的代码看起来像这样:

1   IntelliSense: identifier "AnsiString" is undefined. 

但我想重试那份工作。

2 个答案:

答案 0 :(得分:3)

配置您的错误服务客户端以忽略ExcClass。 Sidekiq将重试,您不会收到错误报告。

答案 1 :(得分:2)

如果我正确地关注了您的问题,听起来您可能需要自定义错误处理程序来执行您想要的操作:

Sidekiq.configure_server do |config|
  config.error_handlers << Proc.new {|exception,context_hash| MyErrorService.notify(exception,context_hash) }
end

默认情况下,Sidekiq会继续自动重试您的作业。

这是否回答了你的问题?这有点令人困惑。 Here are the docs我从中提取了上述信息。