我希望这不是一个重复的问题,但我还没有找到任何东西。 我曾经在我的项目中包含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等待时间,但我不知道该怎么做......
答案 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
,否则它不会覆盖超时!