Почему firebase_admin не разрешается при запуске нескольких процессов - PullRequest
1 голос
/ 23 декабря 2019

У меня есть приложение Tornado, использующее python firebase_admin SDK. Когда я запускаю один процесс:

console_server = tornado.httpserver.HTTPServer(ConsoleApplication())
console_server.listen(options.console_port, options.bind_addr)
tornado.ioloop.IOLoop.instance().start()

firebase_admin работает нормально. Но когда я изменяю его для запуска в многопроцессорном режиме:

console_server = tornado.httpserver.HTTPServer(ConsoleApplication())
console_server.bind(options.console_port, options.bind_addr)
console_server.start(4)
tornado.ioloop.IOLoop.instance().start()

Последняя строка здесь застревает:

if (not len(firebase_admin._apps)):
     cred = ...
     self.app = firebase_admin.initialize_app(cred)
self.app = firebase_admin.get_app()
self.db = firestore.client()
...
ref = self.db.document(USER_DOC.format(org, value))
user_ref = ref.get()

Похоже, что get () не разрешается, поскольку я неполучите любое исключение.

У кого-нибудь есть идея, почему это происходит, или, по крайней мере, как я могу его отладить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...