2

我希望这不是一个重复的问题,但我找不到任何东西。我曾经在我的项目中包含 Rollbar 作为标准错误跟踪工具。我在不同的地方成功地使用了它。但是我有一个问题...

我不知道为什么,但是在特定的公司服务器中,我总是得到[Rollbar] Error processing the item: Net::OpenTimeout, execution expired. 当然我的 Rollbar 帐户中没有收到任何东西

执行rake rollbar:test我得到这个错误

/app/shared/bundle/ruby/2.3.0/gems/rollbar-2.15.0/lib/rollbar/delay/thread.rb:58:in `rescue in block in configure_exit_handler': 无法在 3 秒内获取所有线程(Rollbar::Delay::Thread::TimeoutError) 来自 .../app/shared/bundle/ruby/2.3.0/gems/rollbar-2.15.0/lib/rollbar/delay/thread.rb:52:in在 configure_exit_handler 中阻塞

由于它在另一台服务器上成功运行,我猜这与这台特定的机器有关。但是什么?它既不能同步工作,也不能异步工作。而且问题只发生在这台服务器上。

不是 DNS 问题(我使用的是 Google 的问题)。不是权限问题,因为我收到了 curl https://api-alt.rollbar.com/api/1/item/这样的回复..我不知道..

我正在使用 rails 4.2.5.1 和 Rollbar 2.15(但我尝试使用降级版本并且问题仍然存在)

谢谢你的任何想法!

编辑

看来确实是服务器问题。但系统部门无法解决。一个解决方案可能是增加 Net::OpenTimeOut 等待时间,但我不知道该怎么做......

4

1 回答 1

2

我找到了让它工作的方法。我的最终配置是

  Rollbar.reconfigure do |config|
      config.access_token = ENV['ROLLBAR_TOKEN']
      config.open_timeout = 15
      config.request_timeout = 15

      if %w(test development).include?(Rails.env)
          config.enabled = false
      end
  end

诀窍是使用reconfigure而不是configure否则它不会覆盖超时!

于 2017-08-22T13:51:44.297 回答