通过单个请求使用grequests

时间:2015-03-14 04:04:31

标签: python asynchronous python-requests grequests

我最近在我的工作场所遇到了一些使用grequests library发出HTTP请求的内部代码。

然而,当我查看代码时,我注意到程序一次只发送一个请求。例如,请考虑以下功能:

def run(self, uris):
    # Create the request objects
    reqs = [grequests.get(uri) for uri in uris]

    # Send the requests out, wait for them to complete.
    results = grequests.map(reqs, size=10)
    ...

在调用此函数的所有实例中,只有一个uri 永远传递给该函数。换句话说,对此run()函数的所有调用都如下所示:

run([myURI])

因为我不熟悉使用grequest,这是否真的比传统的requests库更具优势?看起来好像在这里使用grequests会使代码过于复杂化。

是否会出现在这种情况下使用grequest比使用普通旧请求更好的情况?

1 个答案:

答案 0 :(得分:1)

对.map()的调用会阻塞,所以,如果在实践中,uris总是单个uri而不是多个,整个函数将会阻塞,你也可以使用{{1 }}