У меня есть приложение 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 () не разрешается, поскольку я неполучите любое исключение.
У кого-нибудь есть идея, почему это происходит, или, по крайней мере, как я могу его отладить?