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 图层的可见性。在本节中,我们将演示如何在 C# 中切换新 PDF 文档中图层的可见性。 Spire.PDF for .NET 是一…...
新文件覆盖旧文件还能复原吗?八大excel文档修复软件免费
新文件覆盖旧文件还能复原吗?文件操作失误,尤其是新文件意外覆盖旧文件的情况时有发生,面对文件被覆盖的情况,我们不仅需要冷静应对,更需要掌握一系列有效的恢复策略。本文将深入探讨八种免费方法,旨在帮助…...
Android 10.0 Launcher3拖拽图标进入hotseat自适应布局功能实现一
1.前言 在10.0的系统rom定制化开发中,在对于launcher3的一些开发定制中,在对hotseat的一些开发中,需要实现动态hotseat居中 的功能,就是在拖拽图标进入和拖出hotseat,都可以保持hotseat居中的功能,接下来分…...
彻底解决idea的编解码问题
一、打开idea,找到Setting,点击File Encoding编解码设置,将以下标红的三个部分全部设置为UTF-8.同理如果你的项目使用的是GBK或者其他编码格式,那么也设置为统一。 二、点击Java Compiler设置补齐-encoding utf-8参数 三、如果你的项目使用到…...
仅两家!云原生向量数据库 PieCloudVector 全项通过信通院「可信数据库」评测
7月16日,2024 可信数据库发展大会在北京隆重举行。大会以“自主、创新、引领”为主题,近百位数据库领域的专家、学者齐聚一堂,带来高质量的数据库技术洞察与实战经验。 本次可信数据库发展大会中,中国信通院正式公布 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部门、软件实施部门的低代码开发平台,无需学习开发语言/技术框架,可视化开发PC网页/PC项目/小程序/安卓/IOS原生移动应用,低门槛,高效率。针对企业研发部门人员少&#…...
阿里云ACP云计算高级攻城狮通用知识
🔥概述 阿里云云计算高级工程师ACP认证是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证,主要考核考生利用阿里云云计算技术服务体系设计稳定、安全、高性能、易扩展、低成本的企业云计算架构的能力。 前提:在写适用人群…...
log4js node日志插件
最近不是特别忙在用express搭建后台项目,在开发过程中遇到了需要输入日志的问 本来想直接用node自带的console来实现,后来发现console输出的日志达不到自己希望的 日志格式,后来各种百度发现了log4js插件,本文来记录log4js插件使用…...
【MQTT(3)】开发一个客户端,QT-Android安卓手机版本
手机版本更加方便 生成安卓库 参考了这个代码 在编译Mosquitto以支持安卓平台时,主要涉及到使用Android NDK(Native Development Kit)进行交叉编译。环境的准备参考之前的博客【QT开发(17)】2023-QT 5.14.2实现Andr…...
大数据之数据抽取架构演变过程
架构演变之Flink架构的演变过程 一、 起初搭建整个大数据平台是基于CDH这一套资源管理和整合的CM资源管理器搭建的 整个平台包括了: HDFS,YARN,HIVE,zoozie,FLINK,Spark,Zookeeper等组件搭建而成, 刚开始搭建的时候&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树都是用于数据库和文件系统的平衡树数据结构,但它们有一些显著的区别: 节点结构: B树:每个节点存储数据和指向子节点的指针。叶子节点也包含数据。 B树:内部节点只存储索引值,不存储实际数据。所有…...
机器人开源调度系统OpenTCS-6最新版本地源码运行
OpenTCS 项目使用 Gradle 而不是 Maven,那么需要使用 Gradle 来导入和构建项目。在 IntelliJ IDEA 中导入和运行使用 Gradle 的项目,可以按照以下步骤进行操作: 克隆 OpenTCS 源码 首先,克隆 OpenTCS 的源码到本地。您可以使用以…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...
