settings.py

 
# Broker配置,使用Redis作为消息中间件
BROKER_URL = 'redis://127.0.0.1:6379/0' # BACKEND配置,这里使用redis
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0' # 结果序列化方案
CELERY_RESULT_SERIALIZER = 'json' # 任务结果过期时间,秒
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # 时区配置
CELERY_TIMEZONE = 'Asia/Shanghai' # 指定导入的任务模块,可以指定多个
CELERY_IMPORTS = (
'scriptOperate.tasks'
) CELERYBEAT_SCHEDULE = {
'ali_script': {
# 任务路径
'task': 'scriptOperate.tasks.get_ali_script_status',
# 每日七点执行
# 'schedule': crontab(hour=7, minute=0),
'schedule': timedelta(seconds=20)
# 'schedule':5
},
'log_file': {
# 任务路径
'task': 'scriptOperate.tasks.produce_log',
# 每日零点执行
'schedule': crontab(hour=0, minute=0), # 通过crontab进行定时
},
'weather_file':{
'task': 'scriptOperate.tasks.get_weather_status',
'schedule': crontab(hour=7, minute=0)
# 'schedule': timedelta(seconds=20)
},
'power_file':{
'task': 'scriptOperate.tasks.get_power_status',
'schedule': crontab(hour=5, minute=30),
# 'schedule': timedelta(seconds=20)
},
'overview':{
'task': 'scriptOperate.tasks.get_overview_status',
'schedule': crontab(hour=7, minute=10),
# 'schedule': timedelta(seconds=30)
}
}

settings.py同级目录下创建celery.py

import os
import django
from celery import Celery
from django.conf import settings
from celery.schedules import crontab
# 设置系统环境变量,安装django,必须设置,否则在启动celery时会报错
# celery_study 是当前项目名
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'code_work2.settings')
# django.setup() celery_app = Celery('scriptOperate')
celery_app.config_from_object('django.conf:settings')
celery_app.autodiscover_tasks(settings.INSTALLED_APPS)

在app下创建tasks.py

import logging
import json
import datetime
import time
import os.path
import re
import pysftp
from celery import shared_task
from log.log_files import Logger
from code_work2.celery import celery_app
from scriptOperate.task import ali_monitor, weather_monitor, power_monitor, over_view_monitor # log = Logger('../log/files/data.log', level='debug')
# logger = log.logger # @shared_task
@celery_app.task
def get_ali_script_status():
ali_monitor.get_ali_status() @celery_app.task
def get_weather_status():
weather_monitor.get_weather_status() @celery_app.task
def get_power_status():
power_monitor.get_power_status() @celery_app.task
def get_overview_status():
over_view_monitor.get_overview_status() @shared_task
def produce_log():
Logger(logfile, level='debug')

启动任务

celery -A code_work2 beat -l info   启动beat
celery -A code_work2 worker -l info -P eventlet 启动celery

django通过celery定时任务的更多相关文章

  1. Django与Celery配合实现定时任务

    一.前言 Celery是一个基于python开发的分布式任务队列,而做python WEB开发最为流行的框架莫属Django,但是Django的请求处理过程都是同步的无法实现异步任务,若要实现异步任务 ...

  2. Django Celery定时任务和时间设置

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: #coding:utf- from celery.task.schedules ...

  3. Bamboo Django Celery定时任务和时间设置

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...

  4. Django中Celery的实现介绍(一)

    Django中Celery的实现 Celery官网http://www.celeryproject.org/ 学习资料:http://docs.jinkan.org/docs/celery/ Cele ...

  5. Django使用Celery异步任务队列

    1  Celery简介 Celery是异步任务队列,可以独立于主进程运行,在主进程退出后,也不影响队列中的任务执行. 任务执行异常退出,重新启动后,会继续执行队列中的其他任务,同时可以缓存停止期间接收 ...

  6. celery 定时任务时间篇

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...

  7. django和celery结合应用

    django+celery项目结构 - project_name - app01 - __init__.py - admin.py - views.py - modes.py - tasks.py # ...

  8. Python中Celery 的基本用法以及Django 结合 Celery 的使用和实时监控进程

    celery是什么 1 celery是一个简单,灵活且可靠的,处理大量消息的分布式系统 2 专注于实时处理的异步任务队列 3 同时也支持任务调度 执行流程 Celery 基本使用 tasks.py i ...

  9. 将celery定时任务设置为根据本地时区触发

    默认celery的时区为UTC,如果要在django项目中将celery定时任务配置为根据本地时区触发,则需要修改 在setttings.py 添加以下任意一行: # celery 相关配置 CELE ...

  10. django中设置定时任务

    django中设置定时任务 在django中设置定时任务我们可以借用django-crontab这个第三包来实现 django-crontab只能在linux系统下使用 安装: pip install ...

随机推荐

  1. 浅谈 Node.js 热更新

    简介: 记得在 15 16 年那会 Node.js 刚起步的时候,我在去前东家的入职面试也被问到了要如何实现 Node.js 服务的热更新. 记得在 15 16 年那会 Node.js 刚起步的时候, ...

  2. 全面升级!揭秘阿里云智能Logo设计的AI黑科技

    简介: 免费体验!阿里云智能logo设计一直致力于用AI技术,帮助更多有设计需求的朋友能"多快好省"地做logo,让"设计logo"这件有门槛的事情,通过智能工 ...

  3. 盒马新零售基于DataWorks搭建数据中台的实践

    大家好,我叫许日花名欢伯,在2016年盒马早期的时候,我就转到了盒马的事业部作为在线数据平台的研发负责人,现在阿里云的计算平台负责DataWorks的建模引擎团队.今天的分享内容也来源于另一位嘉宾李启 ...

  4. 2.docker-compose安装prometheus

    一.docker-compose安装 前期准备 # docker配置文件 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json < ...

  5. k8s-1.28版本多master部署

    一.环境准备 k8s集群角色 IP 主机名 安装相关组件 kubernetes版本号 控制节点 192.168.10.20 master apiserver.controller-manager.sc ...

  6. rails 给数据库表里加入索引

    创建迁移文件 rails g migration add_product_images_index 编写迁移文件 db/migrate/20170119093958_add_product_image ...

  7. jeecg-boot中分页接口用自定义sql和实体实现

    1.controller实现 @RequestMapping(value = "/list", method = RequestMethod.GET) public Result& ...

  8. 降本提效 | AIRIOT设备运维管理解决方案

      传统运维多是使用在本地化系统,以人工运维和独立系统执行运维工作,重点关注的是设施运行,存在以下几个问题:   1.信息孤岛:本地化系统的接口不同,功能单一独立,各个系统之间的数据无法对接.交互,形 ...

  9. 【.NET项目分享】免费开源的静态博客生成工具EasyBlog,5分钟拥有自己的博客

    EasyBlog 说明 本博客系统通过构建工具生成纯静态的博客网站,借助GitHub Pages,你可以在5分钟内免费拥有个人博客. 它具有以下特点 生成纯静态网站,访问速度极快 使用markdown ...

  10. 服务器root密码忘记,使用centos7 紧急模式修改root密码

    一.实战场景 公司一台centos7服务器root密码忘记了,需要你修改root密码,找回root身份. 二.进入紧急模式修改root密码 首先重启服务器,看到这界面时选择第一项,按下e键进行编辑 2 ...