使用场景
异步任务: 将耗时的操作任务提交给Celery去异步执行,比如发送短信/邮件,消息推送等等。
定时任务:类似于crontab,比如每日数据统计。
模块
pip install django==2.0
pip install redis==2.10.6
pip install celery==3.1.20
简单的使用
独自创建一个文件夹,如我个人创建的文件夹名为demo4
,里面创建一个文件tasks.py,文件内容如下:
from celery import Celery
app = Celery('tasks', broker='redis://127.0.0.1:6379/6', backend='redis://127.0.0.1:6379/10')
@app.task
def add(x, y):
return x + y
文档结构如下图所示:
虚拟环境终端下运行如下命令:
celery -A tasks worker --loglevel=info
如下图所示:
如果是使用pycharm的话点击
然后再点击Terminal可以看到如下图所示:
查询celery执行的相关命令
使用pycharm,点击Python Console
In[2]:from tasks import add # 引入任务
In[3]:result = add.delay(2,222) # 调起任务并把参数传过去
In[4]:result.ready() # 查看任务是否完全处理,True代表处理完成,False代表处理中
Out[4]:True
In[5]: result.result # 查询返回值结果
Out[5]: 224
In[6]:result.failed() # 查看是否执行失败
Out[6]: False