2012-12-06 108 views
2

代碼/薄文檔建議的默認連接超時是30秒。但是,當我嘗試測試它時,它似乎不起作用。我錯過了什麼?薄服務器不超時

我使用薄V1.5.0(最新的)。

# Test this using: curl -X GET http://localhost:3000/test. You will find that the request does not 
# timeout after 30s. 

require 'thin' 

class SimpleAdapter 
    def call(env) 
    sleep 100 
    body = ["hello!"] 
    [ 
     200, 
    { 'Content-Type' => 'text/plain' }, 
     body 
    ] 
    end 
end 

server = Thin::Server.new('127.0.0.1', 3000) do 
    map '/test' do 
    run SimpleAdapter.new 
    end 
end 

server.start! 
+0

你能引用表明30秒超時的文檔? – udoprog

+0

如果你在看代碼,DEFAULT_TIMEOUT設置爲30秒。另外,如果你使用命令行亞軍和做「薄-h」,則幫助提出以下建議:「-t,--timeout SEC請求或命令超時,以秒(默認值:30)」。 – Kowshik

回答

5

以下內聯文檔狀態:

的傳入數據連接之前到達最大秒數被丟棄。

薄正確顯示的行爲,也就是說,如果您遠程登錄到服務器:

telnet localhost 3000 

,並等待30秒,則丟棄該連接。 然而,捲曲命令已經發送一個完整的HTTP請求到瘦服務器,這就是爲什麼是從來沒有達到超時等待傳入數據