从 Asyncio 事件循环部署 Celery 任务

问题描述

我有一个当前使用 asyncio 编写的后端应用程序:用于 Web 服务器的 fastapi,用于异步数据库驱动程序的 sqlalchemy 1.4 + asyncpg。我需要将任务部署到将运行和更新主机应用程序的工作人员。目前我正在使用 aio_pika,但想要更强大的东西,例如 celeryflower

我知道 celery 没有与 asyncio 集成。我也通读了 answers like this one 并且我担心的是任务不是异步的,这是微不足道的。我担心从主事件循环中启动任务。

我的主要问题是,my_task.delay()/my_task.apply_async() 是否完全阻止了正在运行的线程?如果是这样,更好的方法是使用从中央 getmp.QueueProcesspoolExecutor 项的多处理工作线程,然后仅从该工作进程部署 celery 任务吗?

我想部署任务,理想情况下,在任务完成时收到通知。不过,这可以通过 fastapi 界面在任务本身内完成。我只想确保部署任务不会阻塞异步事件循环。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)