2011-05-24 36 views
2

Rails 3.1支持HTTP流式傳輸,但只支持兼容的Web服務器。該博客文章宣佈3.1發佈候選提到麒麟: http://weblog.rubyonrails.org/2011/5/22/rails-3-1-release-candidateRails 3.1中的HTTP流式傳輸是否適用於Thin?

和API文檔也不在話下獨角獸,並有乘客存根: https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/streaming.rb

有誰知道是否支持薄,如果是這樣,在哪裏可以找到配置信息?

+0

我能夠獲得精簡到「流」數據。看看這個[將異步數據推送到正文的問題]的答案(http://stackoverflow.com/questions/4964828/stream-multiple-body-using-async-sinatra/6552070#6552070)。作爲一個警告,這種方法更像是一種黑客攻擊,並不是技術上使用'content-type:chunked'的html5流式處理,但我已經在自己的機器上運行了它。 – 2011-07-07 22:10:44

回答

1

在爲0.5.4版本的發行說明:

== 0.5.4 Flying Mustard release 
    * Don't read the full body, use direct streaming when sending response. 
     See: Response#each 
     As a result, the Content-Length can not be calculated anymore. 
     You have to do set this in your adapter. All frameworks do it anyway. 
     It improve memory usage and boost speed for low concurrency. 
     Thanks to Kent Sibilev and Ezra for their help on that one. 

然而,當我跑了兩個薄實例(在不同的端口,一組爲資產主機),在佈局的CSS和JS們在控制器動作中的sleep調用已完成執行之前未加載。這是在生產模式下完成的。

我不完全確定它的機制,可能需要設置Thin機架適配器以允許流式傳輸。

+1

我不確定睡覺會在薄的情況下作爲測試工作,因爲它會阻止反應堆,並防止在睡覺時瘦身服務其他任何東西。但我可能是錯的。 – 2011-08-27 11:09:25