个人理解Celery分布式消息队列就是一个生产者消费者模式,Celery产生任务交给中间人Broker(在这里使用redis作为中间人),中间人将任务分发给众多的worker来完成任务。
看一个简单的项目:
创建tasks.py:
from celery import Celery
app=Celery('tasks',backend='redis',broker='redis://127.0.0.1:6379')
@app.task
def add(x,y):
return x+y
启动redis服务器:redis-server
在tasks.py 所在目录下打开终端,启动工作者来监听任务
键入: celery -A tasks worker --loglevel=info -P eventlet
再打开一个终端来调用任务:
此时监听任务的终端也会输出结果: