黄东旭解析 TiDB 的核心优势
1336
2023-04-23
超实用 Demo:使用 FastAPI、Celery、RabbitMQ 和 *** 实现一个异步任务工作流
异步任务,是 Web 开发中经常遇到的问题,比如说用户提交了一个请求,虽然这个请求对应的任务非常耗时,但是不能让用户等在这里,通常需要立即返回结果,告诉用户任务已提交。任务可以在后续慢慢完成,完成后再给用户发一个完成的通知。
今天分享一份代码,使用 Celery、RabbitMQ 和 *** 实现一个异步任务工作流,你可以修改 task.py 来实现你自己的异步任务。
架构图如下:
其中 Celery 来执行异步任务,RabbitMQ 作为消息队列,*** 存储任务执行结果,FastAPI 提供 Web 接口。
以上所有模块均可使用 Docker 一键部署。
下面为 Demo 使用方法:
1、确保本机已安装 Docker、Git
2、下载源代码:
3、部署并启动:
4、启动一个异步任务:
任务会发送到消息队列,同时会立即返回一个任务 id:
5、查询任务状态:
任务完成后的返回结果如下:
代码目录结构如下:
其中 app.py 如下:
如果要实现自己的任务队列,就修改 task.py 来添加自己的异步任务,可以整合到自己的项目中。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。