【发布时间】:2024-01-23 12:07:01
【问题描述】:
MongoReplicaSetClient docs 明确指出,您不能fork 进程并在两个进程中使用MongoReplicaSetClient。
问题:是否保证MongoClient 在进程分叉后可以工作?还是在每个进程中单独启动与数据库的单独连接更好?
据我所知,文件描述符cannot be safely used 在进程fork 之后更远,因为两个进程共享相同的文件描述结构。但是,这些不是文件,而是网络连接,包装在一些 python 类中;所以我基本上不知道类似的逻辑是否适用于MongoClient,或者由于某种原因它可以保证实际正常工作。
我也不明白,如果任何子进程先于其他进程退出,网络连接是否会关闭(简单的文章表明它没有,但为什么而且总是这样?)。
【问题讨论】:
标签: unix connection fork pymongo