Ste*_*hen 5 ruby ruby-on-rails exception sidekiq mailchimp-api-v3.0
我有一个 sidekiq 工人,它将请求 3rd 方 api(Mailchimp) 并得到一些回应。有时它会响应一条错误消息,api gem 将引发错误。
但是,这些错误是正常的,无需重试。所以我希望 Sidekiq 在出现这些错误时防止重试。
我已经尝试了一个rescuesimple ,但它不会阻止 sidekiq 捕获引发的错误。
def preform(id)
UpdateMailchimpService.new.(id)
rescue
Mailchimp::ListInvalidBounceMemberError
end
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?谢谢
更新
最后发现我的问题是我们的部署工具坏了(部署失败但没有实现)。实际上,Sidekiq 将忽略任何已获救的错误/异常,并且不会重试并报告给 Bugsnag。
在Bugsnag 的文档中,它明确地说:
应该安装和配置 Bugsnag,任何未处理的异常都会被自动检测到,并且应该出现在你的 Bugsnag 仪表板中。
github上的这篇文章没有明确的解释,所以这就是我对这个问题感到困惑的原因。
您的假设/示例不正确。做正常的 Ruby 事情:修复错误并忽略它。
def perform(id)
begin
UpdateMailchimpService.new.(id)
rescue NormalError
# job will succeed normally and Sidekiq won't retry it.
end
end
Run Code Online (Sandbox Code Playgroud)