2015-11-01 62 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