Celery异步任务队列
celery的本质: 通过提前创建的进程调用函数来实现异步的任务。
celery的概念:
任务执行者(worker):
提前创建的进程,调用对应的函数来实现异步任务。
任务发出者:
发送需要worker执行的任务函数的信息。
中间人(broker):
任务队列,保存任务发出者发出的信息。
celery的特点:
1)任务执行者(创建的进程)可以单独在另一台电脑上创建。
2)添加到任务队列中的信息是进行排队的,先添加的信息会先被worker所执行。
3)生成者-消费者模型。
celery的使用:
1)安装: pip install celery
2)创建一个Celery类的对象并进行设置
main.py
from celery import Celery
# 创建Celery对象
celery_app = Celery('demo')
# 加载配置
celery_app.config_from_object('配置文件包路径')
# 让celery worker启动时自动发现任务
celery_app.autodiscover_tasks(['任务函数包路径'])
创建配置文件
# config.py
# 设置中间人broker地址
broker_url = 'redis://127.0.0.1:6379/3'
3)定义任务函数
@celery_app.task(name=‘send_sms_code’)
def send_sms_code(a, b):
# 函数代码…
pass
4)启动worker工作进程(创建工作进程)
celery -A 'celery_app所在文件包路径' worker -l info
5)发出任务信息
send_sms_code.delay(a, b)