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查询sqlite数据表的方法
May 08 Python
Python读写unicode文件的方法
Jul 10 Python
python从入门到精通(DAY 1)
Dec 20 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 Python
python打包成so文件过程解析
Sep 28 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
Python包argparse模块常用方法
Jun 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
浅析PHP水印技术
2007/02/14 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
TypeScript入门-接口
2017/03/30 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
关于Python的一些学习总结
2018/05/25 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
Python with语句用法原理详解
2020/07/03 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
党员干部承诺书
2014/03/25 职场文书
超市开店计划书
2014/04/26 职场文书
机械专业技术员求职信
2014/06/14 职场文书
学习教师法的心得体会
2014/09/03 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
工作试用期自我评价
2015/03/10 职场文书
红楼梦读书笔记
2015/06/25 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技