我想使用 Bugsnag 报告失败的 Resque 作业。我该如何配置它?该文档特别提到了与 Resque 的集成,但没有提供有关如何集成的指导。
我必须写一Resque::Failure::Bugsnag
堂课吗?其他人已经写了所以我不必写吗?
我想使用 Bugsnag 报告失败的 Resque 作业。我该如何配置它?该文档特别提到了与 Resque 的集成,但没有提供有关如何集成的指导。
我必须写一Resque::Failure::Bugsnag
堂课吗?其他人已经写了所以我不必写吗?
除了上面康拉德的出色回答外,我还犯了以下错误,导致 Resque 工作无法出现在 Bugsnag 中:
确保附加到Resque::Failure::Multiple.classes
您的 Resque 初始化程序中。我正在覆盖 Resque 初始化程序中的数组,这可能是在 Bugsnag 初始化程序运行后(任意)被调用的。
即,在config/initializers/resque.rb
:
做:
Resque::Failure::Multiple.classes ||= []
Resque::Failure::Multiple.classes << Resque::Failure::Redis
Resque::Failure.backend = Resque::Failure::Multiple
不要:
Resque::Failure::Multiple.classes = [Resque::Failure::Redis]
Resque::Failure.backend = Resque::Failure::Multiple
Bugsnag ruby gem 设置为自动与 Resque 之类的东西集成。理论上,您需要做的就是在 Gemfile 中添加 bugsnag 和 resque:
gem "resque"
gem "bugsnag"
https://github.com/bugsnag/bugsnag-ruby/blob/master/lib/bugsnag/resque.rb将为您完成集成工作。
免责声明:我为 Bugsnag 工作,并致力于 bugsnag rubygem。
除了上面的答案,如果您使用不同的失败后端类(我们正在使用MultipleWithRetrySuppression
https://github.com/lantins/resque-retry#failure-backend ),您需要手动添加Bugsnag::Resque
到数组中。例如:
(Resque::Failure::MultipleWithRetrySuppression.classes ||= []).push(
Resque::Failure::Redis,
Bugsnag::Resque
)
Resque::Failure.backend = Resque::Failure::MultipleWithRetrySuppression