代码之家  ›  专栏  ›  技术社区  ›  messanjah

如何使用Resque::Failure配置Bugsnag?

  •  4
  • messanjah  · 技术社区  · 9 年前

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

    我必须写一封信吗 Resque::Failure::Bugsnag 班是不是已经有人写了,所以我不必写了?

    3 回复  |  直到 9 年前
        1
  •  4
  •   the911s    9 年前

    除了康拉德上面出色的回答之外,我还犯了以下错误,导致Resque jobs无法出现在Bugsnag中:

    确保 追加 Resque::Failure::Multiple.classes 在Resque初始值设定项中。我正在重写Resque初始值设定项中的数组,这可能是在运行Bugsnag初始值设定后(任意)调用的。

    i、 e.,英寸 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
    
        2
  •  3
  •   Conrad Irwin    9 年前

    Bugsnag红宝石宝石被设置为自动与Resque等东西集成。理论上,您需要做的就是在Gemfile中添加bugsugg和resque:

    gem "resque"
    gem "bugsnag"
    

    https://github.com/bugsnag/bugsnag-ruby/blob/master/lib/bugsnag/resque.rb 将为您完成集成工作。

    免责声明:我为Bugsnag工作,并致力于Bugsnag rubygem。

        3
  •  1
  •   mdesantis    3 年前

    除了上面的答案之外,如果您使用的是不同的失败后端类(我们使用的是 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