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的加密模块md5、sha、crypt使用实例
Sep 28 Python
python查看微信好友是否删除自己
Dec 19 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
Python csv模块使用方法代码实例
Aug 29 Python
python django生成迁移文件的实例
Aug 31 Python
Python callable内置函数原理解析
Mar 05 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
pandas求平均数和中位数的方法实例
Aug 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
无线电广播的开始
2002/01/30 无线电
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
python直接访问私有属性的简单方法
2016/07/25 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
python读取中文txt文本的方法
2018/04/12 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
教师找工作推荐信
2013/11/23 职场文书
银行委托书范本
2014/04/04 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
贷款收入证明范本
2015/06/12 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server