【发布时间】:2017-11-28 23:43:23
【问题描述】:
我有一个 sidekiq 工作人员,它将请求 3rd 方 api(Mailchimp) 并得到一些响应。有时它会响应 api gem 会引发错误的错误消息。
但是,这些错误是正常的,无需重试。所以我希望 Sidekiq 在出现这些错误时防止重试。
我尝试了一个简单的rescue,但它不会阻止 sidekiq 捕获引发的错误。
def preform(id)
UpdateMailchimpService.new.(id)
rescue
Mailchimp::ListInvalidBounceMemberError
end
有什么办法吗?谢谢
更新
终于发现我的问题是因为我们的部署工具坏了(部署失败但没有实现)。实际上,Sidekiq 将忽略任何已挽救的错误/异常,它们不会被重试并报告给 Bugsnag。
在Bugsnag's documentation中,明确表示:
应该安装和配置 Bugsnag,任何未处理的异常都将被自动检测并出现在您的 Bugsnag 仪表板中。
github 上的这个post 没有明确的解释,所以这就是我对这个问题感到困惑的原因。
【问题讨论】:
-
“它不会阻止 sidekiq 捕获引发的错误” – 你的意思是什么?
-
@Stefan 这意味着 sidekiq 仍然知道这项工作导致了错误
ListInvalidBounceMemberError,并将重试这项工作。 -
@Stephen 您的代码示例看起来无效。你能提供真实的例子吗?因为
rescue阻止我重试 Sidekiq 作业。
标签: ruby-on-rails ruby exception sidekiq mailchimp-api-v3.0