pymongo中的MongoClient opened before fork警告原因及解决方法

今天在python中遇到了一个警告,如下:

UserWarning: MongoClient opened before fork. Create MongoClient only after forking. See PyMongo's documentation for details: http://api.mongodb.org/python/current/faq.html#is-pymongo-fork-safe
  "MongoClient opened before fork. Create MongoClient only "

查找资料后发现,是在多进程环境中,一个MongoClient实例不应该被当作参数在不同进程间进行传递。PyMongo是线程安全的,但并不是进程安全的,以本文中的demo为例,MongoClient的实例不应该从父进程传递到子进程,这两个进程应该各自创建属于自己的MongoClient实例,否则,可能会发生死锁等意外情况,而上面的警告便是提醒这些操作。

def insert_data(target_db, data_list):
    target_db.insert_many(data_list)


if __name__ == '__main__':
    # 这里将测试的数据库的地址替换为了*
    source_db = MongoClient('mongodb://admin:admin@*.*.*.*:*')['test_db']['test_1_13_1&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值