max*_*max 6 python gevent python-3.x python-requests grequests
据我知道的区别map,并imap是map等待所有请求完成,然后返回有序数据.而imap立即返回数据并减少订单.
我用的时候:
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.map(rs)
Run Code Online (Sandbox Code Playgroud)
所有请求完成后立即使用挂钩,并调用回调函数.
我用的时候:
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.imap(rs)
Run Code Online (Sandbox Code Playgroud)
然后没有发送单个请求.
根据文档图和imap有着相同的API.
这是预期的行为吗?我不应该使用带有imap的钩子吗?我使用的是Python 3.5.
据我所知,
map和之间的区别imap是map等待所有请求完成然后返回有序数据。而imap立即返回数据并减少订购。
这不是真的。map立即执行所有请求并返回结果(这可能需要一段时间,因此您可能会说“等待所有请求完成”)。
但是imap返回一个生成器并仅根据需要执行请求。所以你必须在发送请求之前开始迭代生成器。循环生成器以获得结果:
for single_request in r:
# so something with "single_request"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2917 次 |
| 最近记录: |