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代码检查工具pylint 让你的python更规范
Sep 05 Python
python用于url解码和中文解析的小脚本(python url decoder)
Aug 11 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python中请使用isinstance()判断变量类型
Aug 25 Python
python中类变量与成员变量的使用注意点总结
Apr 29 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
Python使用Tkinter实现机器人走迷宫
Jan 22 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
常用的Python代码调试工具总结
Jun 23 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
也谈 PHP 和 MYSQL
2006/10/09 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
requireJS使用指南
2016/04/27 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
Vue精简版风格概述
2018/01/30 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python中list循环语句用法实例
2014/11/10 Python
Python实现二分查找算法实例
2015/05/26 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python实现针对中文排序的方法
2017/05/09 Python
python psutil库安装教程
2018/03/19 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
大学军训自我鉴定
2013/12/15 职场文书
集中采购方案
2014/06/10 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
基层工作经历证明
2015/06/19 职场文书
水浒传读书笔记
2015/06/25 职场文书
中秋晚会致辞
2015/07/31 职场文书
2016春季运动会前导词
2015/11/25 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL