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简易实现任意位数的水仙花实例
Nov 13 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
Python流程控制 while循环实现解析
Sep 02 Python
Python hashlib模块实例使用详解
Dec 24 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
基于Pytorch SSD模型分析
Feb 18 Python
python实现电子词典
Mar 03 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
python中if及if-else如何使用
Jun 02 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 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
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
python使用pil生成缩略图的方法
2015/03/26 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python操作Excel之xlsx文件
2017/03/24 Python
Keras自定义IOU方式
2020/06/10 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
给实习单位的感谢信
2014/02/01 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
村居抓节水倡议书
2014/05/19 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
面试自我评价范文
2014/09/17 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
办公室岗位职责范本
2015/04/11 职场文书
学校教学工作总结2015
2015/05/19 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫