是否可以实际进行异步休息呼叫?

时间:2017-03-20 16:41:54

标签: python asynchronous python-requests

我需要以2.7和3.x的方式进行一些异步休息调用。我已经看到了一些关于grequest的建议,但文档非常缺乏。我的默认代码如下所示:

import requests

for i in range(1, 10):        
    x = requests.post('some_endpoint', data={"a":i})

工作正常,但不是异步。我尝试过使用grequests,但我发现的唯一用法是这样的:

import grequests

for i in range(1, 10):
    x = grequests.post('some_endpoint', data={"a":i})
    grequests.map([x])

这有效,但它不是异步。

我做错了什么,或者问候不像我假设的那样?我可以使用其他一些可以在2.7和3.x中使用的库吗?

1 个答案:

答案 0 :(得分:1)

您需要使用grequests.map一次性发送所有请求,因为在完成所有请求之前它不会返回。

import grequests

req = []
for i in range(1, 10):
    req.append(grequests.get('https://www.google.com'))

grequests.map(req)
for r in req:
    print r.response