一、Celery简介

一、什么是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
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页