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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
python中正则表达式的使用详解
Oct 17 Python
python daemon守护进程实现
Aug 27 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
Python模块、包(Package)概念与用法分析
May 31 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python 可视化库PyG2Plot的使用
Jan 21 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
javascript getElementsByTagName
2011/01/31 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
解决python报错MemoryError的问题
2018/06/26 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Python中SQLite如何使用
2020/05/27 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
外贸采购员求职的自我评价
2013/11/26 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
创业计划书撰写原则
2014/01/25 职场文书
oracle索引总结
2021/09/25 Oracle