Django中使用中使用celery完成异步任务的示例代码完成异步任务的示例代码
本文主要介绍如何在django中用celery完成异步任务,web项目中为了提高用户体验可以对一些耗时操作放到异步队列中去执行,例
如激活邮件,后台计算操作等等 当前项目环境为: django==1.11.8 celery==3.1.25 redis==2.10.6 pip==9.0.1 python3==3.5.2
django-celery==3.1.17
一,创建一,创建Django项目及项目及celery配置配置
1,创建Django项目
1>打开终端输入:django-admin startproject TestCelery 创建django项目(‘TestCelery’是项目名称)
2>进行TestCelery在终端输入指令:django-admin startapp testcelery 创建应用(‘testcelery为应用名称’)
2, 为celery设置环境变量
1>项目中在TestCelery中创建celery.py文件(与setting.py同级)输入以下内容:
from celery import Celery
from django.conf import settings
import os
# 为celery设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TestCelery.settings')
# 创建应用
app = Celery('testcelery')
# 酸配置应用
app.conf.update(
# 本地Redis服务器
BROKER_URL='redis://127.0.0.1:6379/2',
)
app.autodiscover_tasks(settings.INSTALLED_APPS)
2>当前项目目录如下图所示:
二二,创建任务创建任务tasks,编写视图编写视图View及及urls
1, 在testcelery应用中新建tasks.py文件,并写入要进行处理的任务:
from TestCelery.celery import app
from time import sleep
@app.task
def start_running(nums):
print('***>%s<***' %nums)
print('--->>开始执行任务<<---')
for i in range(10):
print('>>'*(i+1))
sleep(1)
print('>---任务结束---<')
2,编写view视图,并写入调用client的方法
from django.views import View
from django.http import HttpResponse
from .tasks import start_running
from time import sleep