一, 简介
celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。它的执行单元为任务(task),利用多线程,如Eventlet,gevent等,它们能被并发地执行在单个或多个职程服务器(worker servers)上。任务能异步执行(后台运行)或同步执行(等待任务完成)。
主要应用场景:
1,web应用,当需要触发事件需要较长时间处理完成,可以交给celery进行异步执行,执行完后返回结果,这段时间不用等待,提高系统的吞吐量和响应时间。
2,完成任务时,需要额外的事件处理,如发送邮件等。
3,后台定时任务处理,celery可以帮助我们在不同服务器进行定时任务管理。
二, 简单的例子
1,安装相关包
celery
pip install celery
redis
sudo apt install redis-server
启动redis sudo /etc/init.d/redis-server start
检查redis状态 sudo /etc/init.d/redis-server status
端口检查 ps -ef | grep redis
2, 第一个程序,创建hello_celery.py
from celery import Celery
app = Celery("task", broker="redis://localhost:6379//", backend="redis://localhost")
@app.task
def add(x, y):
return x + y
3,启动
celery -A hello_celery worker -l info
4, Ipython 执行worker
In [3]: from hello_celeryimport add
In [4]: r = add.delay(1, 7)
In [5]: r.result
Out[5]: 8
网友评论