2015-11-01 67 views
0

我正在使用Typhoeus,並希望在不阻止響應的情況下發出一個請求。稍後,我可能會檢查答覆,否則我可能不會。關鍵是我不希望代碼執行等待響應。我可以用Ruby的Typhoeus進行異步請求嗎?

有沒有辦法對Typhoeus進行內置操作?

否則我想我必須使用線程並自己做?

回答

-1

你可以嘗試使用thread

response = nil 

request_thread = Thread.new { 
    # Set up the request object here 
    response = request.response 
} 

從那裏,你可以檢查response == nil看是否請求尚未作出,並且可以調用request_thread.join阻塞,直到線程執行完畢。

0

我會建議尋找Ruby的'unirest'gem。

據我所知,在「hydra.run」百頭巨怪塊調用

隨着Unirest,它不會對GET/POST/PUT塊/等電話,但繼續運行。如果你願意,你可以存儲在一個散或標識數組中的「對象」後進行檢索,像這樣:

identifier_requests['id'] = Unirest.post(url,headers: headers, parameters: param, auth: auth) 

然後以阻止或檢索響應,使用其中一個呼叫的響應對象:

response_code = (identifier_requests['id']).code 
response.body 

http://unirest.io/ruby.html