Django实现celery定时任务过程解析


Posted in Python onApril 21, 2020

1.首先在项目同名目录下建一个celery.py

from __future__ import absolute_import
import os
from celery import Celery
from datetime import timedelta
from kombu import Queue

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'OpsManage.settings')

from django.conf import settings

app = Celery('OpsManage')

# Using a string here means the worker will not have to
# pickle the object when using Windows.
# 配置celery
class Config:
  BROKER_URL = 'amqp://guest:guest@localhost:5672//'
  CELERY_RESULT_BACKEND = 'redis://localhost:6379'
  CELERY_ACCEPT_CONTENT = ['application/json']
  CELERY_TASK_SERIALIZER = 'json'
  CELERY_RESULT_SERIALIZER = 'json'
  CELERY_TASK_RESULT_EXPIRES = 60 * 60
  CELERY_TIMEZONE = 'Asia/Shanghai'
  CELERY_ENABLE_UTC = True
  CELERY_ANNOTATIONS = {'*': {'rate_limit': '500/s'}}
  CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

app.config_from_object(Config)
# 到各个APP里自动发现tasks.py文件
app.autodiscover_tasks()
#crontab config
app.conf.update(
  CELERYBEAT_SCHEDULE = {
    # 每隔30s执行一次函数
    'every-30-min-add': {
      'task': 'apps.tasks.celery_assets.push_host_by_salt_tasks',
      'schedule': timedelta(seconds=30)
      # # 每天凌晨12点
      # 'schedule': crontab(minute=0, hour=0)
    },
  },
)
# kombu : Celery 自带的用来收发消息的库, 提供了符合 Python 语言习惯的, 使用 AMQP 协议的高级接口
Queue('transient', routing_key='transient',delivery_mode=1)

2.在settings.py里配置celery

INSTALLED_APPS = [
  ......
  'django_celery_beat',
  'django_celery_results',
]

3.在项目同名目录下的__init__.py文件里申明celery任务,记得要去检测呀

# coding:utf-8
from __future__ import absolute_import, unicode_literals

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from celery import app as celery_app

__all__ = ['celery_app']

import pymysql
pymysql.install_as_MySQLdb()

4.在task.py里执行任务的函数上加@

from celery import task
# 定时任务
@task
def push_host_by_salt_tasks():
  “”“balabala”“”
  return '这里是定时任务'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python求斐波那契数列示例分享
Feb 14 Python
python里对list中的整数求平均并排序
Sep 12 Python
python处理大数字的方法
May 27 Python
Python和C/C++交互的几种方法总结
May 11 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
Python创建SQL数据库流程逐步讲解
Sep 23 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 #Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 #Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 #Python
Django基于客户端下载文件实现方法
Apr 21 #Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 #Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 #Python
jupyter notebook 的工作空间设置操作
Apr 20 #Python
You might like
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
js实现京东轮播图效果
2017/06/30 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
Python画图学习入门教程
2016/07/01 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
即兴演讲稿
2014/01/04 职场文书
总账会计岗位职责
2014/03/13 职场文书
市场开发计划书
2014/05/07 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
出差报告格式模板
2014/11/06 职场文书
银行资信证明
2015/06/17 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
宾馆客房管理制度
2015/08/06 职场文书
入党心得体会
2019/06/20 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
Java 数组的使用
2022/05/11 Java/Android