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将图片文件转换成base64编码的方法
Mar 14 Python
python简单实现基数排序算法
May 16 Python
python中__slots__用法实例
Jun 04 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
Python学生成绩管理系统简洁版
Apr 05 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 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的面试题集
2006/11/19 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
js表头排序实现方法
2015/01/16 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
python调用shell的方法
2013/11/20 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
详解django三种文件下载方式
2018/04/06 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
库房管理员岗位职责
2014/03/09 职场文书
党支部对照检查材料
2014/08/25 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2015年调度员工作总结
2015/04/30 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
生日赠语
2015/06/23 职场文书