开发环境
WSL2+Python3
1. 安装Celery
pip install celery
2. 安装Redis
3.安装Redis包
celery要想使用redis作为消息中间件,需要使用pip安装redis包
执行命令
pip install redis
4. 编写一段测试代码
# filename: celery_test.py
import celery
import time
backend = "redis://127.0.0.1:6379/1"
broker = "redis://127.0.0.1:6379/2"
celery = celery.Celery("test", backend=backend, broker=broker)
@celery.task
def send_mail(name):
print(f"Send mail to {name}")
time.sleep(5)
print(f"Send mail to {name} end")
return "ok"
@celery.task
def send_msg(name):
print(f"Send msg to {name}")
time.sleep(5)
print(f"Send msg to {name} end")
return "ok"
5. 启动Celery监听
执行以下命令
celery -A celery_task worker -l INFO # 可以将celery_task替换成自己的代码文件名称
出现如下提示,就表示启动成功了
[2023-08-01 00:38:16,651: INFO/MainProcess] mingle: searching for neighbors
[2023-08-01 00:38:17,658: INFO/MainProcess] mingle: all alone
[2023-08-01 00:38:17,664: INFO/MainProcess] celery@localhost ready.
6. 执行生产者代码
测试代码如下:
from celery_task import send_mail, send_msg
result = send_mail.delay("Luchi")
print(result)
result = send_msg.delay("Luchi")
print(result)
执行此代码之后,
可以看到,右侧的终端中,即执行了send_email任务,又执行了send_msg任务,并没有出现等待5S之后,又执行下一个任务的情况。