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中xrange与yield的用法实例分析
Dec 26 Python
Python生成短uuid的方法实例详解
May 29 Python
详解Django中间件的5种自定义方法
Jul 26 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
python 调整图片亮度的示例
Dec 03 Python
python之随机数函数的实现示例
Dec 30 Python
详解Python中的Lock和Rlock
Jan 26 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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实现自动识别Restful API的返回内容类型
2015/02/07 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
angular分页指令操作
2017/01/09 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
荟萃全球保健品:维他购
2018/05/09 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
电气自动化求职信
2014/06/24 职场文书
政风行风建设责任书
2014/07/23 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
公司奖励通知
2015/04/21 职场文书
楚门的世界观后感
2015/06/03 职场文书
回复函范文
2015/07/14 职场文书
退休欢送会致辞
2015/07/31 职场文书
初中体育教学随笔
2015/08/15 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
服务器nginx权限被拒绝解决案例
2022/09/23 Servers