celery异步任务

223 阅读1分钟

celery中文文档地扯

使用场景

异步任务: 将耗时的操作任务提交给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