本文主要介绍如何在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 # Create your views here. class IdexView(View): def get(self, request): print('>=====开始发送请求=====<') for i in range(10): print('',end='') sleep(0.1) start_running.delay('》》》》》我是传送过来的《《《《《') return HttpResponse('<h2> 请求已发送 </h2>')
3,编写testcelery应用的usrls
from django.conf.urls import url from .views import * urlpatterns = [ url(r'^$', IdexView.as_view()), ]
4,当前项目目录如下图所示:
三,运行项目,开启worker
1, 运行项目在当前项目下输入启动服务指令:python manager.py runserver,出现如下图所示即代表运行成功:
2,开启worker另在当前项目下另打开一个终端,输入指令: celery -A TestCelery worker --loglevel=DEBUG,启动后如下如示:
3,调用任务
1>打开浏览器,输入http://127.0.0.1:8000/send/ 进行访问
2> woker监听到任务请求时,就会执行耗时任务,如下图所示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]