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实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 Python
python统计日志ip访问数的方法
Jul 06 Python
django之session与分页(实例讲解)
Nov 13 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
关于python 的legend图例,参数使用说明
Apr 17 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
基于Python 的语音重采样函数解析
Jul 06 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
Python爬取某平台短视频的方法
Feb 08 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 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遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
js单例模式详解实例
2013/11/21 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
python字典键值对的添加和遍历方法
2016/09/11 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
详解python中的线程
2018/02/10 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
意大利男装网店:Vrients
2019/05/02 全球购物
中专毕业生自我鉴定
2014/02/02 职场文书
小学六年级学生评语
2014/04/22 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
2014年征兵标语
2014/06/20 职场文书
党员评议思想汇报
2014/10/08 职场文书
销售员岗位职责范本
2015/04/11 职场文书
农业项目合作意向书
2015/05/08 职场文书
锦旗赠语
2015/06/23 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书