запустить сельдерей и aiohttp в одном сервисе - PullRequest
0 голосов
/ 17 октября 2019

Моя цель - отправлять уведомления в режиме реального времени пользователю.
сообщение поступит от celery работника.
и будет отправлено пользователю с помощью aiohttp через sockjs.

как запустить оба приложения в одном приложении? или получить сообщения об экземпляре aiohttp, где у меня есть данные аутентифицированных пользователей в памяти? Каков наилучший подход для достижения этого?

Я попытался запустить их вместе, используя aiohttp on_startup. но сельдерей блокирует основную нить, поэтому это невозможно.

async def run_celery(app):
    .... run celery
app = web.Application(loop=asyncio.get_event_loop())
app.on_startup.append(run_celery)
sockjs.add_endpoint(app, msg_handler, name='messeging', prefix='/sockjs/')

большое спасибо.
шей

...