Задать вопрос
YardalGedal
@YardalGedal
yeah boy

Как использовать mongoengine.connect при мультипроцессинге?

У меня в проекте присутствует модуль, содержащий модели документов. В конце файла есть строка из официальной документации mongoengine
connect(DB_HOST)
Далее все вызовы этого модуля происходят внутри торнадо-процессов, например
from core import models
...
owners = models.Owner.objects()
...

Однако в процессе выполнения программы mongoengine выводит предупреждения, что так делать не стоит, ибо models открыт до запуска потоков (на сколько я понимаю, соединение установлено до запуска потоков?)
UserWarning: MongoClient opened before fork. Create MongoClient only after forking. See PyMongo's documentation for details: api.mongodb.org/python/current/faq.html#is-pymongo...
"MongoClient opened before fork. Create MongoClient only "

Как мне корректно использовать connect?

UPD. Я пробовал в каждом файле, где я использую models устанавливать отдельное соединение (вызывать connect()), но это проблему не решило.
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
ZinBu
@ZinBu
Продам гараж (в лс)
На сколько мне известно mongoengine плох для работы с асинхронными фреймворками, так как обращения через него являются блокирующими. Лучше воспользоваться мотором
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы