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 自动安装 Rising 杀毒软件
Apr 24 Python
python中urllib模块用法实例详解
Nov 19 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
浅谈Python peewee 使用经验
Oct 20 Python
python中logging包的使用总结
Feb 28 Python
Python实现时钟显示效果思路详解
Apr 11 Python
python docx 中文字体设置的操作方法
May 08 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
vue常用指令代码实例总结
Mar 16 Python
python ssh 执行shell命令的示例
Sep 29 Python
python 日志模块logging的使用场景及示例
Jan 04 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
万能的php分页类
2017/07/06 PHP
js获取class的所有元素
2013/03/28 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Python如何操作docker redis过程解析
2020/08/10 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
人事专员的岗位职责
2014/03/01 职场文书
校园文明标语
2014/06/13 职场文书
精神病医院见习报告
2014/11/03 职场文书
2015年劳动部工作总结
2015/05/23 职场文书