MongoClient opened before fork. Create MongoClient only Flask

前端 未结 2 1007
北恋
北恋 2020-12-21 13:32

I am running Flask with uwsgi threaded mode with processes 4 and using pymongo also flask_mongoengine and uwsgi says \"MongoClient opened before fork. Create MongoClient onl

相关标签:
2条回答
  • 2020-12-21 13:46

    If you use appllication factory pattern then setting MongoClient connection=False should fix it. It worked for my flask app (v1.0.2), running behind uwsgi server (v2.0.18).

    Example

    # __init__.py
    
    from flask_mongoengine import MongoEngine
    
    mongo = MongoEngine()
    
    def create_app(config=None):
        app = Flask(__name__)
    
        app.config['MONGODB_HOST'] = 'localhost'
        app.config['MONGODB_PORT'] = 27017
        app.config['MONGODB_DB'] = 'datazzilla'
    
        # NOTE: This fixes "UserWarning: MongoClient opened before fork."
        # I'm not aware of side effects yet. Default value is/was "True"
        app.config['MONGODB_CONNECT'] = False
    
        mongo.init_app(app)
    
        return app
    
    0 讨论(0)
  • 2020-12-21 13:49

    app.config['MONGODB_SETTINGS'] = {'DB': 'somedb', "USERNAME": "dbadmin", "PASSWORD":"somepass",'connect': False}

    And

    client = MongoClient(connect=False, username='dbadmin', password='somepass', authSource='somedb')

    Solutions for Mongoengine and For pymongo

    0 讨论(0)
提交回复
热议问题