在Unix系统上,多进程模块使用fork()生成进程。但MongoClient的实例不能从父进程复制到子进程,父进程和每个子进程必须创建他们自己的MongoClient实例。

'''mongo.py'''
def dbconnect():
    client = MongoClient(host='192.168.199.7', port=27017, connect=False)
    client['test'].authenticate('root', 'sa', mechanism='SCRAM-SHA-1')
    return client['test']

'''main.py'''
from .mongo import dbconnect
......
proc = multiprocessing.Process(target=dbconnect)
proc.start()

错误使用:

'''mongo.py'''
client = MongoClient(host='192.168.199.7', port=27017, connect=False)
client['test'].authenticate('root', 'sa', mechanism='SCRAM-SHA-1')
def dbconnect():
    return client['test']

 

相关文章:

  • 2022-12-23
  • 2021-07-30
  • 2022-01-31
  • 2021-08-31
  • 2022-02-20
  • 2022-01-26
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-11
  • 2021-09-15
  • 2021-11-03
  • 2021-06-17
  • 2022-02-12
相关资源
相似解决方案