Каким образом грекеты асинхронны?
В течение некоторого времени мы использовали библиотеку запросов Python, и недавно у меня возникла необходимость сделать запрос асинхронно, что означает, что я хотел бы отправить HTTP-запрос, продолжить выполнение основного потока и вызвать обратный вызов при возврате запроса ,
Естественно меня привели в библиотеку грекетов (https://github.com/kennethreitz/grequests), но я'Я запутался в поведении. Например:
import grequests
def print_res(res):
from pprint import pprint
pprint (vars(res))
req = grequests.get('http://www.codehenge.net/blog', hooks=dict(response=print_res))
res = grequests.map([req])
for i in range(10):
print i
Приведенный выше код даст следующий вывод:
0
1
2
3
4
5
6
7
8
9
Вызов grequests.map () явно блокируется до тех пор, пока HTTP-ответ не станет доступен. Кажется, вероятно, я неправильно поняласинхронный' поведение здесь, и библиотека grequests просто для одновременного выполнения нескольких HTTP-запросов и отправки всех ответов на один обратный вызов. Это точно?