python - 将项目添加到现有多处理池映射中的列表
问题描述
我有一个现有的多处理池映射,它将执行一个 api 调用,但是每个 api 调用都会返回一个项目,该项目应该从所有每个进程中添加到一个列表中。
file_list = []
#this list will have approx million records
pool = Pool(processes=cpu_count(),initializer=init_pool, initargs=(token,url))
pool.map(find_violations, file_list)
在池中运行的功能:
def find_violations(file):
#executes api call
return response
我应该将此响应添加到所有每个进程的一个列表中。我知道我们应该添加 manager list ,但不确定如何更改现有代码以合并该部分。
解决方案
该pool.map
调用将返回响应列表:
response_list = pool.map(find_violations, file_list)
如果您只是要迭代response_list
并希望在获得第一个结果后立即开始,那么您可能对pool.imap
返回可迭代而不是完整列表的函数感兴趣。
推荐阅读
- javascript - 数据存储在 My Sql 数据库中,但对密码进行哈希处理时出错
- oracle-sqldeveloper - 未在 oracle Sql 开发人员中与 group by 一起使用
- java - 收集 WeakHashMap 的条目时,如何对值进行一些清理?
- cryptography - 我为 DigiByte 生成了一对密钥,公钥与 DogeCoin 钱包的公钥匹配。那是问题吗?
- rasa-nlu - 在 Rasa 中创建插槽时,将插槽声明为实体也很重要吗?
- javascript - 如何在节点 js 中将 Promise 转换为异步等待
- javascript - 为什么每当我更新状态时,它保存状态变量看起来就像是一个渲染?
- swiper - 我试图使用 swiper 但它不起作用
- oracle - 如何在oracle forms 12c中创建从现有表单调用表单的快捷方式
- resteasy - 如何让 RestEasy 为错误的查询参数生成 http 错误 400