您的位置:首页 > 编程语言 > Go语言

django中使用celery(二)

2017-09-21 00:34 381 查看
这一篇主要介绍如何保存任务执行结果。

此处需要用到额外包django-celery-results, 先安装包:

pip install django-celery-results
在celery_demo/settings.py中安装此应用:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'demo',
'django_celery_results',  # 注意此处应用名为下划线
]
回到celery_demo/celery.py模块中,增加配置信息如下:

from celery import Celery
from django.conf import settings
import os

# 为celery设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'celery_demo.settings')

# 创建应用
app = Celery("demo")
# 配置应用
app.conf.update(
# 配置broker, 这里我们用redis作为broker
BROKER_URL='redis://:332572@127.0.0.1:6379/1',
# 使用项目数据库存储任务执行结果
CELERY_RESULT_BACKEND='django-db',
)
# 设置app自动加载任务
# 从已经安装的app中查找任务
app.autodiscover_tasks(settings.INSTALLED_APPS)
我这里直接配置app,也可以通过单独的配置文件。

创建django_celery_results应用所需数据库表, 执行迁移文件:

python manage.py migrate django_celery_results
我这里使用的是django默认的数据库sqlit, 执行迁移之后,会在数据库中创建一张用来存储任务结果的表:





再次从浏览器发送请求, 任务执行结束之后,将任务结果保存在数据库中:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: