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 源码
定义异步执行的方法
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的消费者
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的日志

浙公网安备 33010602011771号