基本概念
Celery 有三个角色:
任务的发出者: 发出所有执行的任务(任务就是函数)
任务队列: ( 存放所要执行的任务信息)
处理者: 也就是工作的进程或协程, 负责监听任务队列, 发现任务便执行对应的任务函数
特点:
任务发送者和处理者可以分布在不同的电脑上, 通过中间人进行信息的交换.
任务队列中的任务会进行排序, 先添加的任务会被先执行.
图示:
安装
# 安装 celery:
pip install celery
使用
- 创建celery对象并配置中间人地址
# 引入
from celery import Celery
# 创建celery对象,
# 参数一: 随意起的名称 例如这里的demo
celery_app = Celery('demo')
- 配置
# 配置文件: broker_url = '中间人的地址'
celery_app.config_from_object('配置文件路径')
- 定义任务函数
# 我们这里需要使用上面定义好的对象, 装饰任务
# 这里有个参数: name='当前任务的名称' 这里当前任务的名称可以随便起
@celery_app.task(name='my_task')
def my_task(a, b):
print('任务函数被执行')
...
- 启动worker监听
celery -A 'celery_app文件路径' worker -l info
- 发出任务
# 注意: 任务一定要调用 delay() 函数
my_task.delay(2, ,3)