【问题标题】:Catch exception but do retry with Sidekiq捕获异常但使用 Sidekiq 重试
【发布时间】:2015-06-29 19:28:57
【问题描述】:

默认情况下,sidekiq 将重试任何抛出异常的作业。没事儿。但是,我希望能够捕获该异常,以便我的异常处理程序不会收到通知,然后重试该作业。我如何在反应中做到这一点?

所以我的代码如下所示:

def perform
  ...
rescue ExcClass => ex
  # log
end

但我实际上想重试该工作。

【问题讨论】:

    标签: ruby-on-rails sidekiq


    【解决方案1】:

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

    【讨论】:

      【解决方案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 我从中提取了上述信息。

      【讨论】:

        猜你喜欢
        • 2020-06-17
        • 1970-01-01
        • 2019-08-02
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 2020-02-13
        • 1970-01-01
        • 2021-12-13
        相关资源
        最近更新 更多