2015-11-01 4 views
0

Я использую Typhoeus и хотел бы сделать один запрос без блокировки ответа. Позже я могу проверить ответ, иначе я не могу. Дело в том, что я не хочу, чтобы выполнение кода ожидало ответа.Могу ли я сделать асинхронные запросы с Typhoeus Ruby?

Есть ли способ сделать это встроенным в Typhoeus?

В противном случае, я думаю, я должен использовать потоки и сделать это сам?

ответ

-1

Вы можете попробовать использовать thread:

response = nil 

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

Оттуда вы можете проверить response == nil, чтобы увидеть, если запрос был сделан еще, и вы можете позвонить request_thread.join блокировать, пока поток не будет сделано выполнения.

0

Я бы предложил посмотреть на «unirest» gem для Ruby.

Насколько мне известно, Typhoeus блоки на «» hydra.run называют

С Unirest, он не блокирует на GET/записи/положить/и т.д. позвонить, но продолжает работать. Если вы хотите, вы можете сохранить «объект» в хэш или массив с идентификатором, чтобы получить позже, например, так:

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

 Смежные вопросы

  • Нет связанных вопросов^_^