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开发常用的一些开源Package分享
Feb 14 Python
用Python解析XML的几种常见方法的介绍
Apr 09 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
pandas实现选取特定索引的行
Apr 20 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
Python基于mysql实现学生管理系统
Feb 21 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
Python内置函数property()如何使用
Sep 01 Python
Python使用windows设置定时执行脚本
Nov 12 Python
Python进度条的使用
May 17 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 动态随机生成验证码类代码
2010/04/09 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
Javascript Object.extend
2010/05/18 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
python for和else语句趣谈
2019/07/02 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
保密协议书范本
2014/04/22 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
python 安全地删除列表元素的方法
2022/03/16 Python