我有一个sidekiq工作者,它会请求第三方API(Mailchimp)并得到一些响应。有时它会响应一个错误消息,而API gem会引发一个错误。
但是,这些错误是正常的,不需要重试。所以我希望Sidekiq在出现这些错误时阻止重试。
我已经尝试了一个简单的rescue
,但它不会阻止sidekiq捕获的错误引发.
def preform(id)
UpdateMailchimpService.new.(id)
rescue
Mailchimp::ListInvalidBounceMemberError
end
有什么办法吗?谢谢
更新
最后发现我的问题是由于我们的部署工具坏了(部署失败,但没有实现)。实际上,Sidekiq将忽略任何挽救的错误/异常,他们不会重试,并报告给Bugsnag。
在Bugsnag的文档中,它清楚地写道:
应该安装并配置Bugsnag,任何未处理的异常都将被自动检测到,并应显示在Bugsnag Jmeter 板中。
这个github上的post没有一个明确的解释,所以这就是为什么我对这个问题感到困惑。
2条答案
按热度按时间9jyewag01#
你的假设/例子是错误的。做正常的Ruby操作:修复错误并忽略它。
biswetbf2#
使用
retry: false
advanced option: