4

我想使用 Bugsnag 报告失败的 Resque 作业。我该如何配置它?文档特别提到了与 Resque 的集成,但没有提供有关如何集成的指导。

我必须写一Resque::Failure::Bugsnag堂课吗?其他人已经写了所以我不必写吗?

4

3 回答 3

4

除了上面康拉德的出色回答外,我还犯了以下错误,导致 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
于 2015-06-19T00:55:13.490 回答
3

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 ruby​​gem。

于 2015-03-24T17:48:13.200 回答
1

除了上面的答案,如果您使用不同的失败后端类(我们正在使用MultipleWithRetrySuppressionhttps://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
于 2021-07-20T10:51:34.873 回答