Python 在同一服务中运行芹菜和aiohttp

Python 在同一服务中运行芹菜和aiohttp,python,python-3.x,celery,aiohttp,sockjs,Python,Python 3.x,Celery,Aiohttp,Sockjs,我的目标是向用户发送实时通知。 消息将从芹菜工人处发出。 并将使用aiohttp通过sockjs发送给用户 如何在同一个应用程序上同时运行这两个应用程序?或者在aiohttp实例上接收消息,在该实例中,我的内存中有经过身份验证的用户的数据? 实现这一目标的最佳方法是什么 我尝试在启动时使用aiohttp将它们一起运行。但是芹菜堵塞了主线,所以这是不可能的 async def run_celery(app): .... run celery app = web.Application(lo

我的目标是向用户发送实时通知。
消息将从
芹菜
工人处发出。
并将使用
aiohttp
通过
sockjs
发送给用户

如何在同一个应用程序上同时运行这两个应用程序?或者在
aiohttp
实例上接收消息,在该实例中,我的内存中有经过身份验证的用户的数据? 实现这一目标的最佳方法是什么

我尝试在启动时使用
aiohttp
将它们一起运行。但是芹菜堵塞了主线,所以这是不可能的

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/')
非常感谢。

shay

将芹菜工人和基于aiohttp的web服务分开。将它们全部放在一个大型应用程序中是没有意义的。阻塞代码应该在单独的线程中执行,这样它就不会阻塞主事件循环。@DejanLekic感谢您的评论。如何使任务在aiohttp端运行。我在内存中哪里有所需的数据?那么你的芹菜任务将非常简单-对基于aiohttp的服务的HTTP请求,并返回web服务返回的任何内容。再次感谢@DejanLekic。如果我理解正确,芹菜工人应该使用http请求通知aiohttp服务器吗?(aiohttp需要将数据推送到客户端)