版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luhu124541/article/details/88406398
一、什么是Celery?
Celery是一个自带电池的分布式任务队列。
二、什么是任务队列?(task queue)
1、任务队列是一种在线程或机器间分发任务的机制。
2、消息队列的输入是工作的一个单元,称为任务,独立的职程(Worker)进程持续监视队列中是否有需要处理的新任务。
3、Celery 用消息通信,通常使用中间人(Broker)在客户端和职程间斡旋。这个过程从客户端向队列添加消息开始,之后中间人把消息派送给职程。
什么是职程?什么是Broker?
三、用redis作为中间人(Broker)
1、安装celery及redis依赖
pip install "celery[redis]"
2、在django的settings.py中配置redis数据库的位置
app.conf.broker_url = 'redis://localhost:6379/0'
3、在django的每个需要使用celery的app中添加一个tasks.py文件,文件名固定,不可改。
- Celery()包含两个参数,第一个参数为当前模块名称,此参数是必须的。
- 第二个参数是broker的URL,redis对应的URL格式为:
redis://:password@hostname:port/db_number - 定义一个名为add的单一任务。
from celery import Celery
app = Celery('tasks', broker=' redis://:password@hostname:port/db_number')
@app.task
def add(x, y):
return x + y