![](/img/trans.png)
[英]So, how to remove Rack::ShowExceptions from inside my rack app?
[英]Why is my Rack app hanging?
我編寫了一個開源的Rack應用程序和核心程序庫,以傳輸Tradeking.com的股票報價。 這是機架應用程序: https : //github.com/chaddjohnson/trading_websocket_service 。 這是核心庫: https : //github.com/chaddjohnson/trading_core 。
我修改了trading_core / lib / trading_core / quote_streamer / tradeking.rb以將流數據輸出到控制台,如下所示:
@http.stream do |data|
puts data
流式傳輸幾個小時並輸出到控制台后,它只是凍結了。 我完全不知道為什么。 我已盡力確保任何循環都不是無限的。 我已經調試了一個多星期了。
任何想法為什么會這樣?
以下是我認為可能會發生的主要文件:
第一次查看您的代碼時,我可以想象出出現問題的兩個原因:
很高興我可以將您推向正確的方向!
我最初的預感是關於開放連接的:
您可能需要確保關閉連接:@ http.close在您引用的方法末尾的suresure塊中
然后進行一些取證:
聽起來,您必須深入研究正在運行的紅寶石流程,以找出造成阻塞的原因。 當然,取決於您所使用的操作系統,在Mac和Linux上,您可以使用gdb,strace,dtrace等工具。例如:ruby.dzone.com/articles/debugging-stuck-ruby-processes
我們發現select
被稱為很多東西,這使我們對連接保持懷疑。 原來問題出在通過@api ||= ...init code...
重用@api ||= ...init code...
連接@api ||= ...init code...
很高興您能夠找到它是什么! 感謝您發布解決方案!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.