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 条件判断的缩写方法
Sep 06 Python
学习python的几条建议分享
Feb 10 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
May 04 Python
深入解析Python中的线程同步方法
Jun 14 Python
对Python中gensim库word2vec的使用详解
May 08 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
python实现停车管理系统
Nov 30 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
python树莓派红外反射传感器
Jan 21 Python
python 追踪except信息方式
Apr 25 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
python不同版本的_new_不同点总结
Dec 09 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和ACCESS写聊天室(四)
2006/10/09 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php实现微信支付之企业付款
2018/05/30 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
Python Socket传输文件示例
2017/01/16 Python
Python检测网络延迟的代码
2018/05/15 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python遍历字典方式就实例详解
2019/12/28 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
python 如何区分return和yield
2020/09/22 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
业务员的岗位职责
2014/03/15 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
承诺书的格式范文
2014/03/28 职场文书
中学生英语演讲稿
2014/04/26 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
python实现监听键盘
2021/04/26 Python