当前位置: 首页 > news >正文

Django定时任务框架django-apscheduler的使用

1.安装库

pip install django-apscheduler

2.添加 install_app    

django_apscheduler

3.在app下添加一个task.py文件,用来实现具体的定时任务

task.pydef my_scheduled_job():print("这个任务每3秒执行一次", time.time())

4.在app下创建一个management文件夹,里面包含一个空的__init__.py和一个文件夹commands,commands里面包含一个空的__init__.py和一个start_tasks.py,其中start_tasks.py是主要的启动脚本,结构如下:


from datetime import datetime
from apscheduler.executors.pool import ThreadPoolExecutor
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.cron import CronTrigger
from apscheduler.triggers.date import DateTrigger
from apscheduler.triggers.interval import IntervalTrigger
from django.core.management.base import BaseCommand
from django_apscheduler.jobstores import DjangoJobStorefrom ...tasks import my_scheduled_job, my_scheduled_job1#
# Django manage.py命令:存储定时任务信息
#
class Command(BaseCommand):help = '启动定时任务.'def handle(self, *args, **options):# 调度器scheduler = BlockingScheduler()  # 研发阶段使用# scheduler = BackgroundScheduler() # 生产阶段使用# 任务存储scheduler.add_jobstore(DjangoJobStore(), 'default')# 配置线程池执行器,限制最大并发数为1,防止并发executor = ThreadPoolExecutor(max_workers=1)scheduler.executor = executor# 注册定义任务id_print_task = 'print_task__job'print('开始-增加任务({})'.format(id_print_task))scheduler.add_job(my_scheduled_job,id=id_print_task,name=id_print_task,max_instances=1,replace_existing=True,trigger=IntervalTrigger(seconds=15, start_date=datetime.now(), ),  # 从当前时间开始,每15秒钟调度一次)# 指定某个时间运行run_date = datetime(2024, 7, 18, 18, 33)scheduler.add_job(my_scheduled_job1,id='id_print_task1',name='id_print_task1',trigger=DateTrigger(run_date=run_date),  # 使用 DateTrigger 并设置 run_datereplace_existing=True  # 如果已存在同名任务,则替换它)# 指定每天某个时间运行scheduler.add_job(my_scheduled_job1,id='daily_task_at_18_36',name='Daily Task at 18:36',trigger=CronTrigger(hour=18, minute=38),  # 使用 CronTrigger 并设置小时和分钟replace_existing=True  # 如果已存在同名任务,则替换它)print('完成-增加任务({})'.format(id_print_task))# 启动定时任务try:scheduler.start()except KeyboardInterrupt:scheduler.shutdown()

5.修改settings.py配置,将时区改为中国,最主要是把USE两项注释掉,否则后面的定时任务的时间会晚八小时!!!!

settings.pyLANGUAGE_CODE = 'zh-hans'  # 中文语言代码TIME_ZONE = 'Asia/Shanghai'  # 中国上海时区# USE_I18N = True
#
# USE_TZ = True

6.添加完成后,做数据库迁移,会生成 表django_apscheduler_djangojob 和 表django_apscheduler_djangojobexecution

python manage.py migrate

7.启动项目,然后启动定时任务:

 python manage.py start_tasks

启动后,任务开始执行,数据库上述两张表会有数据进去,定时任务完成,其他的见后面拓展。

拓展:

django-apscheduler框架还提供了很多操作定时任务的函数。比如:

  • 删除任务
    scheduler.remove_job(job_name)
  • 暂停任务
    scheduler.pause_job(job_name)
  • 开启任务
    scheduler.resume_job(job_name)
  • 获取所有任务
    scheduler.get_jobs()
  • 修改任务
    scheduler.modify_job(job_name)

注:修改任务只能修改参数,如果要修改执行时间的话,有3种方法
第一就把任务删了重新创建,
第二直接操作数据库,
第三用到下面重设任务。

  • 重设任务
    scheduler.reschedule_job(job_name)

scheduler.reschedule_job(job_id="job1", trigger='interval', minutes=1)

相关文章:

Django定时任务框架django-apscheduler的使用

1.安装库 pip install django-apscheduler 2.添加 install_app django_apscheduler 3.在app下添加一个task.py文件,用来实现具体的定时任务 task.pydef my_scheduled_job():print("这个任务每3秒执行一次", time.time()) 4.在app下创建一个manag…...

知识库文档处理,word转markdown

前一篇我讲解了如何对接MiniMax实现FAQ,其实知识库不仅仅可以实现FAQ,还能实现帮助文档的查询,内部培训资料的查询等等,但是这些培训资料大部分是word版本的,并且有层级结构,比如标题1,标题1-1等…...

TF和TF-IDF区别和联系

TF(Term Frequency)和TF-IDF(Term Frequency-Inverse Document Frequency)都是用于文本挖掘和信息检索的统计方法,用于评估一个词在文档或文档集合中的重要性。 一.TF(Term Frequency) 1.定义…...

02线性表 - 链表

这里是只讲干货不讲废话的炽念,这个系列的文章是为了我自己以后复习数据结构而写,所以可能会用一种我自己能够听懂的方式来描述,不会像书本上那么枯燥和无聊,且全系列的代码均是可运行的代码,关键地方会给出注释^_^ 全…...

高性能、安全、低碳绿色的趋势下,锐捷网络发布三擎云办公解决方案 3.0

桌面虚拟化作为云时代的主流和热门技术,已经取得了广泛应用。随着生成式 AI 爆炸式发展,CSDN 看到,人工智能正在引发计算、开发、交互三大范式的全面升级,技术开发或将迎来一次全新的科技变革周期,因此 VDI 云桌面随之…...

python3 shutil排除特定或者模糊匹配文件或目录

import shutil import fnmatchdef ignore_files(dir, files):# 定义要忽略的模式ignore_patterns = [file2.txt, dir2, *复制*.py]ignore_list = []<...

Spire.PDF for .NET【文档操作】演示:如何在 C# 中切换 PDF 层的可见性

我们已经演示了如何使用 Spire.PDF在 C# 中向 PDF 文件添加多个图层以及在 PDF 中删除图层。我们还可以在 Spire.PDF 的帮助下在创建新页面图层时切换 PDF 图层的可见性。在本节中&#xff0c;我们将演示如何在 C# 中切换新 PDF 文档中图层的可见性。 Spire.PDF for .NET 是一…...

新文件覆盖旧文件还能复原吗?八大excel文档修复软件免费

新文件覆盖旧文件还能复原吗&#xff1f;文件操作失误&#xff0c;尤其是新文件意外覆盖旧文件的情况时有发生&#xff0c;面对文件被覆盖的情况&#xff0c;我们不仅需要冷静应对&#xff0c;更需要掌握一系列有效的恢复策略。本文将深入探讨八种免费方法&#xff0c;旨在帮助…...

Android 10.0 Launcher3拖拽图标进入hotseat自适应布局功能实现一

1.前言 在10.0的系统rom定制化开发中&#xff0c;在对于launcher3的一些开发定制中&#xff0c;在对hotseat的一些开发中&#xff0c;需要实现动态hotseat居中 的功能&#xff0c;就是在拖拽图标进入和拖出hotseat&#xff0c;都可以保持hotseat居中的功能&#xff0c;接下来分…...

彻底解决idea的编解码问题

一、打开idea&#xff0c;找到Setting,点击File Encoding编解码设置&#xff0c;将以下标红的三个部分全部设置为UTF-8.同理如果你的项目使用的是GBK或者其他编码格式&#xff0c;那么也设置为统一。 二、点击Java Compiler设置补齐-encoding utf-8参数 三、如果你的项目使用到…...

仅两家!云原生向量数据库 PieCloudVector 全项通过信通院「可信数据库」评测

7月16日&#xff0c;2024 可信数据库发展大会在北京隆重举行。大会以“自主、创新、引领”为主题&#xff0c;近百位数据库领域的专家、学者齐聚一堂&#xff0c;带来高质量的数据库技术洞察与实战经验。 本次可信数据库发展大会中&#xff0c;中国信通院正式公布 2024 年上半年…...

vue使用x6画流程图,简单使用

官网 https://x6.antv.antgroup.com/tutorial/getting-started 安装 npm install antv/x6 --save 使用 <template><div>3333<div id"container" style"width: 800px;height: 800px;"></div></div> </template> <…...

低代码中间件学习体验分享:业务系统的创新引擎

前言 星云低代码平台介绍 星云低代码中间件主要面向企业IT部门、软件实施部门的低代码开发平台&#xff0c;无需学习开发语言/技术框架&#xff0c;可视化开发PC网页/PC项目/小程序/安卓/IOS原生移动应用&#xff0c;低门槛&#xff0c;高效率。针对企业研发部门人员少&#…...

阿里云ACP云计算高级攻城狮通用知识

&#x1f525;概述 阿里云云计算高级工程师ACP认证是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证&#xff0c;主要考核考生利用阿里云云计算技术服务体系设计稳定、安全、高性能、易扩展、低成本的企业云计算架构的能力。 前提&#xff1a;在写适用人群…...

log4js node日志插件

最近不是特别忙在用express搭建后台项目&#xff0c;在开发过程中遇到了需要输入日志的问 本来想直接用node自带的console来实现&#xff0c;后来发现console输出的日志达不到自己希望的 日志格式&#xff0c;后来各种百度发现了log4js插件&#xff0c;本文来记录log4js插件使用…...

【MQTT(3)】开发一个客户端,QT-Android安卓手机版本

手机版本更加方便 生成安卓库 参考了这个代码 在编译Mosquitto以支持安卓平台时&#xff0c;主要涉及到使用Android NDK&#xff08;Native Development Kit&#xff09;进行交叉编译。环境的准备参考之前的博客【QT开发&#xff08;17&#xff09;】2023-QT 5.14.2实现Andr…...

大数据之数据抽取架构演变过程

架构演变之Flink架构的演变过程 一、 起初搭建整个大数据平台是基于CDH这一套资源管理和整合的CM资源管理器搭建的 整个平台包括了&#xff1a; HDFS&#xff0c;YARN&#xff0c;HIVE&#xff0c;zoozie,FLINK,Spark,Zookeeper等组件搭建而成&#xff0c; 刚开始搭建的时候&am…...

[web]-反序列化-绕过__wakeup(转)

BUUCTF-[极客大挑战 2019]PHP1_[极客大挑战 2019]php 1-CSDN博客 <?php include flag.php;error_reporting(0);class Name{private $username nonono;private $password yesyes;public function __construct($username,$password){$this->username $username;$this-…...

B树与B+树的区别

B树和B树都是用于数据库和文件系统的平衡树数据结构&#xff0c;但它们有一些显著的区别&#xff1a; 节点结构&#xff1a; B树&#xff1a;每个节点存储数据和指向子节点的指针。叶子节点也包含数据。 B树&#xff1a;内部节点只存储索引值&#xff0c;不存储实际数据。所有…...

机器人开源调度系统OpenTCS-6最新版本地源码运行

OpenTCS 项目使用 Gradle 而不是 Maven&#xff0c;那么需要使用 Gradle 来导入和构建项目。在 IntelliJ IDEA 中导入和运行使用 Gradle 的项目&#xff0c;可以按照以下步骤进行操作&#xff1a; 克隆 OpenTCS 源码 首先&#xff0c;克隆 OpenTCS 的源码到本地。您可以使用以…...

Neovim涂抹光标插件:提升编码体验的动态轨迹设计

1. 项目概述&#xff1a;一个为Neovim设计的“涂抹光标”插件 如果你和我一样&#xff0c;是个重度Neovim用户&#xff0c;每天有超过8小时的时间泡在终端和代码编辑器里&#xff0c;那你肯定对光标的“存在感”有要求。默认的方块或下划线光标&#xff0c;在长时间编码后&…...

基于Vue 3与Express的私有化ChatGPT Web客户端部署指南

1. 项目概述与核心价值最近在折腾一个自用的AI对话工具&#xff0c;核心需求很简单&#xff1a;想在一个自己完全掌控的界面上&#xff0c;方便地使用大语言模型&#xff0c;比如ChatGPT的API。市面上虽然有很多现成的网页应用&#xff0c;但要么功能太臃肿&#xff0c;要么部署…...

别再只用VGG19做分类了!手把手教你用PyTorch提取4096维图像特征向量(实战教程)

突破分类局限&#xff1a;用PyTorch解锁VGG19的深度特征提取实战 当你第一次接触VGG19时&#xff0c;可能被它的ImageNet分类能力所震撼。但如果你只把它当作一个分类器&#xff0c;那就如同用瑞士军刀只开瓶盖——大材小用。在计算机视觉领域&#xff0c;预训练模型真正的价值…...

AI时代数据中心架构变革:从计算中心到加速基础设施

1. 从“计算中心”到“加速基础设施”&#xff1a;数据中心架构的范式转移最近和几个在头部云厂商做架构设计的老朋友聊天&#xff0c;话题总绕不开一个词&#xff1a;加速基础设施。这词儿听起来挺高大上&#xff0c;但说白了&#xff0c;就是咱们传统数据中心那套“通用计算存…...

硬件工程师实战指南:工业物联网安全、无线充电与TSN网络设计解析

1. 项目概述&#xff1a;一场面向硬件工程师的线上技术盛宴最近在整理行业资料时&#xff0c;翻到了EE Times几年前发布的一个“即将到来的线上技术活动”汇总页面。虽然发布时间是2018年&#xff0c;但里面提到的几个技术主题——工业物联网安全、硬件身份认证、工业以太网演进…...

Flutter 自定义动画完全指南

Flutter 自定义动画完全指南 引言 动画是现代移动应用的重要组成部分&#xff0c;它能够提升用户体验&#xff0c;使界面更加生动。Flutter 提供了强大的动画系统&#xff0c;本文将深入探讨如何创建自定义动画效果。 动画基础回顾 动画类型 补间动画 (Tween Animation) - 最常…...

鸿蒙数据持久化三板斧:Preferences、RDB、分布式数据一文搞定,告别数据丢失

&#x1f4d6; 鸿蒙NEXT开发实战系列 | 第21篇 | 数据篇 &#x1f3af; 适合人群&#xff1a;有鸿蒙基础的开发者 ⏰ 阅读时间&#xff1a;约15分钟 | &#x1f4bb; 开发环境&#xff1a;DevEco Studio 5.0 ⬅️ 上一篇&#xff1a;20-网络篇-网络请求与数据加载 ➡️ 下一篇&…...

HBase集群启动后秒退?手把手教你排查ZooKeeper路径配置与htrace-core缺失问题

HBase集群启动后秒退&#xff1f;深度排查ZooKeeper路径与依赖缺失问题 当你在深夜部署HBase集群时&#xff0c;看到服务启动后几秒钟内突然消失&#xff0c;那种感觉就像在黑暗中摸索开关。这不是简单的配置错误&#xff0c;而是系统在向你发出求救信号。让我们像侦探一样&…...

暗黑破坏神2存档编辑器:5分钟掌握你的游戏命运

暗黑破坏神2存档编辑器&#xff1a;5分钟掌握你的游戏命运 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的重复刷怪而烦恼吗&#xff1f;想快速体验各种强力build却不想花费数百小时练级&#xff1f;d2s-edi…...

用AI写论文怎么不被判AI?写作prompt+降AI工具双层防御攻略!

用AI写论文怎么不被判AI&#xff1f;写作prompt降AI工具双层防御攻略&#xff01; 用 AI 写论文最稳的姿势是「双层防御」——写作端用降 AI 提示词预防&#xff08;0 成本但有能力上限&#xff09; 写完用降 AI 工具兜底&#xff08;4.8 元/千字双降到位&#xff09;。 这两…...