Celery 使用
Posted banananana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Celery 使用相关的知识,希望对你有一定的参考价值。
Celery 使用(一)
架构
- Producer:任务发布者;
- Celery Beat:任务调度器,Beat进程会读取配置文件中的内容,周期性的将配置中到期需要执行的任务发送给任务队列;
- Broker:消息代理,接受生产者的任务消息,存进队列后发送给消费者;
- Celery Worker:执行任务的消费者;
- Result Backend:保存消费者执行任务完后的结果;
使用
from celery import Celery
app = Celery(‘tasks‘, backend=‘amqp‘, broker=‘amqp://[email protected]:5672//‘)
@app.task
def add(x, y):
return x + y
from task2 import add
result = add.delay(1,1)
import time
while not result.ready():
print(‘not yet ready‘)
time.sleep(1)
print(result.get())
celery -A task2.app worker --loglevel=info
疑惑
- Celery可以支持多种消息代理,不仅仅是RabbitMQ,还有Redis、MongoDB等等;
- RabbitMQ是消息队列,其可以应用到各种场景中,包括任务分发系统,也就是需要自己实现一个Celery,而Celery本身就是一个任务分发系统,显然简化了代码,不需要重复造轮子;
以上是关于Celery 使用的主要内容,如果未能解决你的问题,请参考以下文章
celery beat 没有发送消息(使用 django-celery-beat)