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 相关文章推荐
使用Python下的XSLT API进行web开发的简单教程
Apr 15 Python
python实现在sqlite动态创建表的方法
May 08 Python
python使用urllib2提交http post请求的方法
May 26 Python
Python简单实现enum功能的方法
Apr 25 Python
Python从函数参数类型引出元组实例分析
May 28 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
python实现TCP文件传输
Mar 20 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
深入分析python 排序
Aug 24 Python
python用700行代码实现http客户端
Jan 14 Python
只用Python就可以制作的简单词云
Jun 07 Python
Python实现简单的俄罗斯方块游戏
Sep 25 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
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
非常实用的php验证码类
2016/05/15 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
jquery 注意事项与常用语法小结
2010/06/07 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
用python对excel查重
2020/12/07 Python
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
EJB的角色和三个对象
2015/12/31 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
好的自荐信包括什么内容
2013/11/07 职场文书
益达广告词
2014/03/14 职场文书
人力资源求职信
2014/05/25 职场文书
植树节口号
2014/06/21 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers