Как настроить Bugsnag с Resque::Failure?
Я хочу использовать Bugsnag для сообщения о неудачных заданиях Resque. Как мне это настроить? В документации конкретно упоминается интеграция с Resque, но не дается никаких указаний относительно того, как.
Должен ли я написать Resque::Failure::Bugsnag
учебный класс? Кто-то другой уже написал это, чтобы мне не пришлось?
3 ответа
Рубиновый камень Bugsnag настроен для автоматической интеграции с такими вещами, как Resque. Теоретически, все, что вам нужно сделать, это добавить bugsnag и перезапустить ваш Gemfile:
gem "resque"
gem "bugsnag"
и https://github.com/bugsnag/bugsnag-ruby/blob/master/lib/bugsnag/resque.rb выполнит работу по интеграции за вас.
Отказ от ответственности: я работаю на Bugsnag и обязуюсь Bugsnag Rubygem.
Добавляя к превосходному ответу Конрада выше, я сделал следующую ошибку, которая препятствовала появлению заданий 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
В дополнение к приведенным выше ответам, если вы используете другой серверный класс сбоя (мы используем
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