python celery的使用
celery本文就不介绍了 感兴趣的看https://c.biancheng.net/view/s0j4eth.html 这个人家介绍的挺好的
1. 安装部署
Celery 涉及任务队列和结果存储, 我们使用 Redis,做例子前要先安装好redis。
我们可以通过命令行方式下载和安装指定版本:
# 安装Celery
pip install celery==5.2.3
# 因为后端采用的是Redis,所以需要安装Redis
pip install redis==4.2.0
# flower组件可以通过Web进行对Celery进行监控,但它不是必需的
pip install flower==1.0.0
#pip install eventlet
注:这个不装会报错 ValueError: not enough values to unpack (expected 3, got 0)
2、项目结构
3、celeryTask.py 源码
定义异步执行的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import celery import time backend = 'redis://127.0.0.1:6379/1' # 设置Redis的1数据库来存放结果 broker = 'redis://127.0.0.1:6379/2' # 设置Redis的2数据库来存放消息中间件 cel = celery.Celery( 'test' , backend = backend, broker = broker) # 参数说明:第一个是Celery的名字,Celery和哪个项目相关就命名哪个 # 后面两个关键字参数用于指定消息中间件和结果存放位置。 @cel .task def send_email(name): print ( "向{}发送邮件..." . format (name)) time.sleep( 5 ) print ( "向{}发送邮件完成" . format (name)) return "ok" @cel .task def send_msg(name): print ( "向{}发送短信..." . format (name)) print ( "向{}发送短信完成" . format (name)) return "ok" |
4、启动celery
D:\pythonProject2023\CeleryProject> celery -A celeryTask worker -l INFO -P eventlet
说明:celery -A 定义实例的py文件名(不带.py) worker -l (日志的等级)
5、run.py源码
Celery的消费者
1 2 3 4 5 6 7 8 9 10 | from celeryTask import send_email, send_msg result1 = send_email.delay( "张三" ) print (result1. id ) result2 = send_email.delay( "李四" ) print (result2. id ) result3 = send_email.delay( "王五" ) print (result3. id ) result4 = send_email.delay( "赵六" ) print (result4. id ) |
6、执行run.py
查看celery的日志
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!