处理项目的Rollbar错误:Net :: OpenTimeout,执行已过期

时间:2017-08-09 15:14:40

标签: ruby-on-rails-4 rollbar

我希望这不是一个重复的问题,但我还没有找到任何东西。 我曾经在我的项目中包含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在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:在configure_exit_handler

中的块中

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

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

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

感谢您的任何想法!

修改

这似乎真的是一个服务器问题。但系统部门无法解决它。一个解决方案可能是Net :: OpenTimeOut等待时间,但我不知道该怎么做......

1 个答案:

答案 0 :(得分:1)

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

  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,否则它不会覆盖超时!