django之使用celery-把耗时程序放到celery里面执行的方法


Posted in Python onJuly 12, 2019

1 在虚拟环境创建项目test和应用booktest(过程省略),然后安装所需的包

pip install celery==3.1.25
pip install celery-with-redis==3.0
pip install django-redis==3.1.17

2 配置settings,

# 数据库使用mysql
DATABASES = {
  'default': {
    'ENGINE':'django.db.backends.mysql',
    'NAME':'test',
    'USER':'root',
    'PASSWORD':'mysql',
    'HOST':'localhost',
    'PORT':3306,
  }
}

# 注册djcelery应用
INSTALLED_APPS = (
  ...
  'djcelery',
)

# celery配置

# 如报错 ImportError: No module named djcelery ,是因为没有在虚拟环境运行导致, workon h1进入虚拟环境再运行解决
import djcelery

# 初始化所有的task任务,这些任务来自booktest.task模块
djcelery.setup_loader()

# 使用redis第0个数据库,并绑定ip端口
BROKER_URL='redis://127.0.0.1:6379/0'

# 设置初始化的任务来源
CELERY_IMPORTS = 'booktest.task'

3 在应用目录booktest下面创建任务列表文件task.py

from celery import task
import time

# 加上@task装饰器,则python函数就变成一个celery任务
@task
def celery_test():
  print('hello...')
  time.sleep(5)
  print('world...')

4 创建视图,并配置相关的url配置,把耗时任务放入视图被调用

# -*- coding:utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
from task import celery_test


# celery练习1:把耗时程序放在celery中执行
def celerytest(request):
  # function.delay(参数),celery任务celery_test调用方法
  celery_test.delay()
  return HttpResponse('ok')

# 根级url配置 test.urls
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  url(r'^celery/', include('booktest.urls')),
]

# 应用下的url配置 booktest.urls
from django.conf.urls import url
import views

urlpatterns=[
  url(r'^celerytest/$', views.celerytest)
]

5 迁移,生成celery所需的数据表

python manage.py migrate

6 启动redis

sudo redis-server /etc/redis/redis.conf

7 启动worker

python manage.py celery worker --loglevel=info

8 另开一个终端窗口,启动django服务器

python manage.py runserver

9 测试,输入url,如 http://127.0.0.1:8000/celery/celerytest/,则返回'ok'

同时,会在worker对应的窗口看到耗时任务程序在此输出,即当用户请求时,不用等待太久就可以得到结果'ok',同时耗时任务程序也被异步执行,提高用户体验.

以上这篇django之使用celery-把耗时程序放到celery里面执行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
go和python调用其它程序并得到程序输出
Feb 10 Python
python中readline判断文件读取结束的方法
Nov 08 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
10个Python小技巧你值得拥有
Sep 29 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
详解Python3中ceil()函数用法
Feb 19 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
Python reduce函数作用及实例解析
May 08 Python
python包的导入方式总结
Mar 02 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 #Python
Django中celery执行任务结果的保存方法
Jul 12 #Python
python hough变换检测直线的实现方法
Jul 12 #Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 #Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 #Python
在交互式环境中执行Python程序过程详解
Jul 12 #Python
pip指定python位置安装软件包的方法
Jul 12 #Python
You might like
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
js null undefined 空区别说明
2010/06/13 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
python安装sklearn模块的方法详解
2020/11/28 Python
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
大四学生思想汇报
2014/01/13 职场文书
单位未婚证明范本
2014/01/18 职场文书
房屋产权证明书
2014/10/15 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
安全先进个人材料
2014/12/29 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
学雷锋感言
2015/08/03 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
flex弹性布局详解
2022/03/20 HTML / CSS