2012-04-13 40 views
0

我需要在我的Rails應用中頻繁地發佈到另一個服務器,但它需要。問題是我不需要回應。有什麼辦法可以通過發送請求來加快速度,然後在不等待響應的情況下刪除連接,而無需進入延遲的作業或事件計算機?如果這些是唯一的選擇,我可以處理它,但它會讓生活變得更簡單,不需要。Rails無阻塞帖子

這是我現在有:

remoteAddress = 'http://remote.server.address/' 

params = { 
    'a' => a, 
    'b' => b } 

url = URI.parse(remoteAddress) 
Net::HTTP.post_form(url, params) 
+0

看到http://stackoverflow.com/questions/6643964/asynchronous-http-request-in-紅寶石 – 2012-04-13 07:37:35

回答

3

如果在進行呼叫之前實例化一個Net::HTTP對象,你可以將其read_timeout屬性設置爲一個很小的數字,然後趕導致超時::錯誤異常並繼續前進。

下面是一個使用URL和查詢字符串格式的POST數據的各個部分的例子:

endpoint = Net::HTTP.new(host, port) 
endpoint.read_timeout = 0.001 
endpoint.post(path, params_as_query_string) rescue Timeout::Error