GIS*_*han 5 python sqlite multiprocessing python-3.x concurrent.futures
我正在处理数千个 XML 文件,并希望使用ProcessPoolExecutorfrom来完成此操作concurrent.futures。
唯一的文档示例假设您在继续之前等待所有结果(就像我找到的所有并发.futures 教程一样),但在这种情况下这是不可行的,因为我将在处理完成之前耗尽 RAM。
一种选择是使用类似这样的东西来批量工作 - http://grokbase.com/t/python/python-list/1458ss5etz/real-world-use-of-concurrent-futures#20140508uqijcqm5ddbvxhq4xpkqaw3ebi,我已经使用之前项目中的方法。
但我认为更好的选择是将处理结果(dict各种数据)发送到单独的(单个)后处理过程。在这种情况下,后处理需要将结果写入 SQLite 数据库文件,但如果它可以是一个单独的专用进程,它将对该文件具有独占控制权,从而消除死锁、文件损坏等风险。
我知道根据这个优秀的答案,使用队列进行多重处理是可能的 - Python 多重处理安全地写入文件- 这可以通过并发.futures 来完成吗?如果可以,如何实现?
(我使用的是Python 3.6)
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |