Python Django2.0集成Celery4.1教程


Posted in Python onNovember 19, 2019

环境准备

Python3.6

pip install Django==2.0.1

pip install celery==4.1.0

pip install eventlet (加入协程支持)

安装erlang和rabbitMQ-server

配置settings.py文件

在settings.py文件中添加如下内容

...
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672'

在settings.py同级目录创建celery.py

celery.py

注意替换: project_name

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

# 设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

# 注册Celery的APP
app = Celery('project_name')
# 绑定配置文件
app.config_from_object('django.conf:settings', namespace='CELERY')

# 自动发现各个app下的tasks.py文件
app.autodiscover_tasks()

修改settings.py同级目录的init.py文件

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

__all__ = ['celery_app']

在某个APP中创建tasks.py文件

tasks.py

# -*- coding: utf-8 -*-

from celery.task import task

# 自定义要执行的task任务
@task
def print_hello():
  return 'hello celery and django...'

配置周期性任务或定时任务

再次编辑settings.py文件,添加如下内容

定时任务的配置格式参考:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

from celery.schedules import crontab
CELERY_BEAT_SCHEDULE = {
  # 周期性任务
  'task-one': {
    'task': 'app.tasks.print_hello',
    'schedule': 5.0, # 每5秒执行一次
    # 'args': ()
  },
  # 定时任务
  'task-two': {
    'task': 'app.tasks.print_hello',
    'schedule': crontab(minute=0, hour='*/3,10-19'),
    # 'args': ()
  }
}

启动worker和定时任务

启动worker (切换到manage.py同级目录下执行)

celery -A project_name worker -l info -P eventlet

启动定时任务或周期性任务

celery -A project_name beat -l info

这里备注一下:最好使用supervisord来管理上面这2条命令

存放任务结果的扩展

pip install django-celery-results
Install APP
INSTALLED_APPS = (
  ...,
  'django_celery_results',
)

生成数据库表:python manage.py migrate django_celery_results

配置settings:CELERY_RESULT_BACKEND = 'django-db' (用数据库存放任务执行结果信息)

以上这篇Python Django2.0集成Celery4.1教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
如何将python中的List转化成dictionary
Aug 15 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
Python二进制文件读取并转换为浮点数详解
Jun 25 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
keras中的backend.clip用法
May 22 Python
python excel和yaml文件的读取封装
Jan 12 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 #Python
Django 自动生成api接口文档教程
Nov 19 #Python
wxpython实现按钮切换界面的方法
Nov 19 #Python
Python性能分析工具Profile使用实例
Nov 19 #Python
使用apiDoc实现python接口文档编写
Nov 19 #Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 #Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 #Python
You might like
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
人工神经网络算法知识点总结
2019/06/11 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
python爬取微博评论的实例讲解
2021/01/15 Python
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
市场营销专业求职信
2014/06/17 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
党员身份证明材料
2015/06/19 职场文书
退货证明模板
2015/06/23 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书