栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python请求:不要等待请求完成

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python请求:不要等待请求完成

我用

multiprocessing.dummy.Pool
。我在模块级别创建一个单例线程池,然后用于
pool.apply_async(requests.get,[params])
启动任务。

该命令给了我一个未来,我可以将它无限期地与其他未来添加到列表中,直到我想收集全部或部分结果为止。

multiprocessing.dummy.Pool
出于所有逻辑和理由,是一个THREAD池而不是一个进程池。

示例(只要安装了请求,就可以在Python 2和3中使用):

from multiprocessing.dummy import Poolimport requestspool = Pool(10) # Creates a pool with ten threads; more threads = more concurrency.     # "pool" is a module attribute; you can be sure there will only     # be one of them in your application     # as modules are cached after initialization.if __name__ == '__main__':    futures = []    for x in range(10):        futures.append(pool.apply_async(requests.get, ['http://example.com/']))    # futures is now a list of 10 futures.    for future in futures:        print(future.get()) # For each future, wait until the request is      # finished and then print the response object.

这些请求将同时执行,因此运行所有十个请求所花的时间不应超过最长的一个。该策略将仅使用一个CPU内核,但这不会成为问题,因为几乎所有时间都将花费在等待I /
O上。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号