MongoClient открывается перед форком. Создайте MongoClient только Flask - PullRequest
0 голосов
/ 02 июля 2018

Я запускаю Flask с многопоточным режимом uwsgi с процессами 4 и использую pymongo, а также flask_mongoengine, и uwsgi говорит: «MongoClient открыт перед форком. Только для MongoClient» Я пытался соединиться с connect = False, но результат тот же

lazy-apps = истинная проблема исправлена, но кажется, что uwsgi нужно больше времени для загрузки что можно сделать для лучшей производительности?

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Если вы используете фабричный шаблон приложения , тогда настройка MongoClient connection=False должна исправить это. Он работал для моего приложения фляги (v1.0.2), работающего за сервером uwsgi (v2.0.18).

Пример

# __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 голосов
/ 06 июля 2018

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

И

client = MongoClient (connect = False, username = 'dbadmin', пароль = 'somepass', authSource = 'somedb')

Решения для Mongoengine и For pymongo

...