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模块之StringIO使用示例
Apr 08 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 Python
python获取list下标及其值的简单方法
Sep 12 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
使用Python的turtle模块画图的方法
Nov 15 Python
简单谈谈python中的lambda表达式
Jan 19 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
DRF使用simple JWT身份验证的实现
Jan 14 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
PHP 已经成熟
2006/12/04 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
初识Laravel
2014/10/30 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
在Python中os.fork()产生子进程的例子
2019/08/08 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Pytorch 实现权重初始化
2019/12/31 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
销售类个人求职信范文
2013/09/25 职场文书
物流管理毕业生自荐信
2013/10/24 职场文书
采购主管的岗位职责
2013/12/17 职场文书
学生自我鉴定
2013/12/18 职场文书
学校联谊活动方案
2014/02/15 职场文书
档案工作汇报材料
2014/08/21 职场文书
2014年残联工作总结
2014/11/21 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
创业计划书之美容店
2019/09/16 职场文书