【发布时间】:2017-07-19 18:37:04
【问题描述】:
我正在使用 Python (2.7) 和 pymongo (3.3),我需要生成一个子进程来异步运行作业。不幸的是,pymongo 不是here 所述的 fork-safe(我需要在生成子进程之前与 db 交互)。
我使用subprocess.Popen(将shell 设置为True,然后设置为False)和multiprocessing.Process 运行了一个实验。据我所知,他们都 fork 父进程来创建子进程,但只有 multiprocessing.Process 导致 pymongo 打印它检测到分叉进程的警告。
我想知道这样做的 pythonic 方式是什么。似乎os.system 可能会为我做这件事,但subprocess 被描述为os.system 的预期替代品,所以我想知道我是否遗漏了什么。
【问题讨论】:
标签: python subprocess pymongo python-2.x python-multiprocessing