Djano+apscheduler实现接口自动化平台定时运行

django的随项目自动启动的定时任务Scheduler 目录1.安装依赖包2.定义定时任务 1.安装依赖包 pip3 install apscheduler==2.1.2 注意:指定安装版本的原因是,高于2.1.2的版本不存在Scheduler这个类。 2.定义定时任务 找到django项目的根目录下和项目名同名的应用下的urls.py 在里面添加如下代码。 例如: urls.py添加的代码如下: # 导入 from apscheduler.scheduler import Scheduler # 定义对象 sched = Scheduler() # 阅读详情

在Django项目中使用apscheduler实现定时任务

在django中可以直接使用apscheduler库配置定时程序,但因为apscheduler库在运行定时工作(job)时,是将job加载到内存中,当django项目重启时,任务工作也会同步清空(若想将工作计划持久化,需要自己封装到数据库中),所以在此使用的库是

django_apscheduler

1.安装模块

pip install django_apscheduler
pip install apscheduler

(注:在安装完模块后需要使用 python manage.py migrate命令进行迁移数据库,在迁移完成后,会生成 django_apscheduler_djangojob与django_apscheduler_djangojobexecution俩个库)
其中django_apscheduler_djangojob存放的是当前数据库中剩余的工作(job)计划
在这里插入图片描述
next_run_time是此工作预计下次运行的时间;
django_apscheduler_djangojobexecution是存放已经运行过或者正在运行工作的历史记录
在这里插入图片描述

2.使用模块-初始化

setting中需要将模块加入apps
在这里插入图片描述

在django中使用apscheduler库,需要将初始化工作写在 url中,或者view文件中,要能在django服务一运行时,就能加载代码,
所以此处我将代码写在了某APP下的views中
在这里插入图片描述

# 导入模块
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
from django_apscheduler.models import DjangoJob
#初始化模块
#将已经过时的工作都删除 __lt小于
DjangoJob.objects.filter(next_run_time__lt=datetime.now()).delete()  # 将数据库中已经过时的工作删除
# 初始化定时器:BackgroundScheduler为在后台运行
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), 'default')
register_events(scheduler)
scheduler.start() # 此处直接在django服务运行加载时,直接启动定时任务,之后在代码中动态的加入工作计划(job)

3. django代码中动态构建任务

此处是在views视图中加入了一个get方法,以供从前端拿到用户输入的数据,进行构建定时任务
主要构建代码是scheduler.add_job(run, 'cron', hour=hour,minute=minute,id=str(task.id),args=[Case_id, case.name,steps ])
采取的方式是cron和date格式, 当用户输入的具体的时间格式后,会想定时任务中加入一个run方法;
run方法的主要作用就是运行某测试用例。执行测试用例中的测试报告(run方法的具体代码中此不做叙述)
传参使用args=[ ] 的格式传输;
id使用的是自定义任务库的id,当用户想修改一个定时任务时,需要在django_apscheduler_djangojob库中删除这个任务,再重新使用add_job方法构建进入,以达到修改定时任务的效果;
在这里插入图片描述
好了,以上就是django使用apscheduler定时任务实现接口自动化定时的全部内容了,
总结:
实现代码全部写在的views中,在顶部导入模块,完成对应初始化工作后,在具体的views视图中,根据用户输入的值,使用add_job方法完成定时任务的构建;

其他—目前遇到的报错:
1.Job identifier (test_jobs) conflicts with an existing job
此错误是因为工作id和数据库中现存在工作id一致导致的,需要修改id名称为别的即可;
在这里插入图片描述
2:django.db.utils.OperationalError: database is locked
初步估计是因为开启的job过多,导致连接池不够,改了一种实例化调度器的方式后,可以解决,并且加一个misfire_grace_time属性值将这个值设置大一下,增加容错机制
在这里插入图片描述
3:

当使用cron 和data方法进行定时不能运行问题:

因为在创建调度器实例化时,加入了timezone='MST’参数,应该是区时设置的不正确,删除即可在这里插入图片描述

Cursor使用教程,有点难 Cursor Code Editor 不仅仅是一个代码编辑器,它更是一个集成了 AI 的全功能开发环境,帮助你从代码编写到优化的整个过程变得更加智能和高效。它通过内置的 AI 代码补全、错误检测和自动修复功能,大大减少了手动编写代码的负担,帮助你快速完成开发任务。同时,Cursor 还与多种前沿的 AI 大模型集成,包括 OpenAI 的 GPT-4o、Claude 3.5 和 Meta 的 Llama 3.1。 阅读详情

相关推荐

[Windows] 发票识别工具。支持xml、pdf、ofd文件。

发票识别是财务自动化中的关键环节,支持多种格式(XML、PDF、OFD)的识别工具能显著提升工作效率。以下介绍基于Windows平台开发此类工具的技术方案。发票识别是财务自动化中的关键环节,支持多种格式(XML、PDF、OFD)的识别工具能显著提升工作效率。以下介绍基于Windows平台开发此类工具的技术方案。

pZC_dqux的博客 666

Uwsgi+Django多进程下Apscheduler定时任务动态添加、任务重复执行及解决定时任务中高并发的问题(适用于分布式)

Uwsgi+Django多进程下Apscheduler定时任务动态添加、任务重复执行及解决定时任务中高并发的问题(适用于分布式) 因为uwsgi+django启用多进程的情况下,每一个进程是单独,但是apscheuler定时任务执行器的实例需要在多进程下实现共享,很多人想到共享可能会选择方案:1.存储的方式(各种db、redis),2.队列,共享内存等等方案…存储的方式需要的条件:实例是需要可被序列化的,但是apscheuler定时任务执行器的实例是不可被序列化的,所以第一种方案不可行。队列的方式可以实现,

鱼哥的杂货铺 4152

NPP/VIIRS夜间灯光数据:从下载到应用的完整指南

本文提供了NPP/VIIRS夜间灯光数据从下载、处理到应用的完整实战指南。详细介绍了如何从官方源获取数据、解读文件结构、进行坐标校正与数据清洗,并深入探讨了其在城市扩张监测、社会经济指标估算、重大事件影响评估等领域的核心应用。文章旨在帮助研究者与从业者快速掌握这一强大的空间数据,将其转化为研究中的实用工具。

gpu4optimizer的博客 862

APScheduler动态增、删、改任务

记一次通过faust读取kafka数据动态增、删、改APScheduler任务的笔记,手敲无测! # -*- coding: utf-8 -*- import asyncio import logging import faust import ujson from apscheduler.executors.pool import ThreadPoolExecutor from apscheduler.jobstores.mongodb import MongoDBJobStore from aps

weixin_42000303的博客 5098

日语五十音图速记攻略:从形象联想法到实战训练

语言学习中的记忆编码与条件反射构建是高效掌握基础的关键。其核心原理在于通过将抽象符号与具象图像、故事或已知概念关联,利用大脑对视觉和叙事信息的天然高记忆效率,从而降低认知负荷,加速识别与反应速度。这一方法的技术价值在于将机械重复转化为意义联结,显著提升长期记忆的牢固度与提取速度。在日语学习这一具体应用场景中,五十音图作为表音文字系统,正是实践这一记忆技术的绝佳对象。通过系统化的形象联想、分组对比(如平假名与片假名的对应关系)以及间隔重复的实战训练,学习者可以高效攻克这一入门难关,为后续的词汇、语法学习铺设坚

weixin_29032489的博客 376

Allegro如何导出和导入器件模型Signal_Model操作指导

在用Allegro做PCB设计的时候,通常需要给器件加上Signal_Model,在做等长的时候用到的非常频繁。如下图,需要把R7002的Signal_Model导入到另外一块没有给R7002加好模型的BRD中。Allegro除了可以给器件添加模型,还支持从一块加好模型的BRD导入到另外一块BRD中,如何导出和导入器件模型Signal_Model操作指导。

weixin_54787054的博客 1896

django APScheduler

APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab命令。同时,它还支持异步执行、后台执行调度任务。

日常bug 9781

CoppeliaSim和Python进行无人机联合仿真

CopeeliaSim和Python进行无人机轨迹跟踪联合仿真。首先建立起CoppeliaSim和Python的连接,其次在Python中生成轨迹,CoppeliaSim仿真环境中的无人机进行跟踪,并绘制出轨迹曲线,有每一步详细的教学。

加斯顿工程师的博客 986

掌握自动化测试,3个方法轻松实现定时执行!

我们在做自动化时,当自动化测试用例编写完成后,都会想着将其自动执行程序,或者说通过定时的形式进行执行我们的自动化测试程序,这样才能真正意义上实现自动化测试。哪么大家知道都有哪些方法可以帮助我们实现这个功能吗?接下来小编就简单介绍下集中如何定时执行我们的自动化测试用例程序。

伤心的辣条 2151

56、宇宙微波背景辐射(CMB)望远镜及光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统,重点介绍了交叉德拉贡系统的结构特点、偏振测量误差及其控制、以及大型地面望远镜如ACT和SPT的设计与对比。同时,总结了不同光学系统和探测器阵列的优劣势,并展望了未来发展方向,旨在为CMB研究提供更高效的工具和技术支持。

f9g0h的博客 241

SAP NetWeaver Business Client (NWBC) 的深入解析

SAP NetWeaver Business Client(NWBC)作为 SAP 提供的一种用户界面,旨在为终端用户提供无缝集成传统 SAP GUI 事务和新开发的基于 Web Dynpro ABAP 的应用程序的体验。SAP NetWeaver Business Client(NWBC)是 SAP 推出的用户界面,旨在为终端用户提供单一入口,集成传统的 SAP GUI 事务和新开发的基于 Web Dynpro ABAP 的应用程序。在实际业务场景中,NWBC 的应用提升了用户的工作效率和体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1603

Django框架中使用定时任务APScheduler

文章目录前言一、安装模块二、配置1.修改**settings.py**文件2.执行迁移命令二、创建任务1.前提必备2.装饰器创建任务---适合于写代码的人自己创建任务3.add_job函数创建任务---适合用户通过页面输入参数,并提交来手动创建定时任务三、删除任务1.remove_job示例2.DjangoJobStore源码分析总结 前言 Django框架中使用定时任务APScheduler:django-apschedule 本文需要已掌握Python定时任务框架APSchedule,如果不会,可以.

m0_47958289的博客 3119

在ABAQUS中使用VUMAT子程序实现Hashin失效准则的详细解析与实践:深入探讨复合材料模拟仿真的高级编程技巧

Hashin失效准则是由材料科学家Shlomo Hashin于1962年提出的一种基于能量方法的多向失效理论,主要用于预测复合材料的破坏行为。与传统的单向失效理论不同,Hashin准则考虑了材料内部的多种独立破坏机制,如基体断裂、界面脱粘、纤维断裂等,这些机制在不同应力状态下可能同时或分别发生。通过计算各个机制的能量释放率,Hashin失效准则能够更为准确地预测复合材料在复杂应力状态下的破坏行为。

qq_38334677的博客 1949

django定时任务库 django_apscheduler

django_apscheduler 在做定时任务的时候这个库挺有用的,记得在这个库还不存在的时候,自己也写了一个和这个库功能差不多的django模块。也能用,不过不是很稳定,每次重启wsgi的时候,都要手动启动任务。无意中发现了django_apscheduler 这块第三方库,用了下挺好用的。 安装 pip install django-apscheduler 将: django_apscheduler 加到 项目setting.py INSTALLED_APPS 中 INSTALLED_A

燃灯工作室 1295

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

APScheduler:apscheduler.jobstores.base.ConflictingIdError: ‘Job identifier (job2) conflicts with an

jobs 的 ID 冲突了

shunzi2016的博客 4265

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Django - 定时任务框架【django-apscheduler】基本使用详解(二)

一个网页会有很多数据是不需要经常变动的,比如说首页,变动频率低而访问量大,我们可以把它静态化,这样就不需要每次有请求都要查询数据库再返回,可以减少服务器压力 我们可以使用Django的模板渲染功能完成页面渲染

Mr_WoLong 6409

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

基于DRF apscheduler的定时任务处理

apscheduler django相关坑和结合restframework框架网页功能

laoli815的博客 957

python apscheduler cron定时任务触发接口自动化巡检

python cron定时任务触发接口自动化巡检 定时任务触发方式有几种类型,日常的工作中,研发同学运用比较多的就是cron方式 查了一下APScheduler框架内支持多种定时任务方式 首先先安装apscheduler模块 $ pip install apscheduler 代码如下:(在方法内注释了各种时间参数的定义与范围) from apscheduler.schedulers.blocking import BlockingScheduler class Timing: def __

weixin_44861659的博客 2451

django使用定时任务django_apscheduler

问题:当数据量过大,请求时间过长的时候,使用django的缓存可以解决部分问题,但是当缓存数据过期时重新请求又是耗时的时间,请求时需要用户等待。解决:使用定时任务加缓存的方式,在后台定时请求数据保存到缓存中,而对外的接口只负责读取缓存的数据即可,这样就不用再等待数据的请求了。

分享一点有用的知识 1693

job运行失败分析方法

确认job是否运行失败: 在dba_jobs中的字段FAILURES表示job运行失败的次数  或者在alert日志中也可以看到job运行失败的信息(当instance=0时,说明job没有指定在某个节点执行,oracle会让job在较为空闲的实例上执行,所以最好所有节点的alert日志都看下是否有关于ORA-12012、ORA-12545的job运行报错)   定位job的运行失败原...

liuzhilong的博客 7301

Django高级特性之django-apscheduler定时任务,给Django添加run,右键运行

今天搞了一天 终于搞出来了 ,后边改造的话,就可以把系统计划任务搞到Django里面,网上文章很乱,后边代码都是自己验证的 ,赶紧记录下来。 django-apscheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Crontab 命令。同时,它还支持异步执行、后台执行调度任务 配置简单、功能齐全、使用灵活、支持windows和linux,适合中小型项目。 基础组件 APScheduler 有四种组件,分别是: 调度器(scheduler), 作业存储(job store), 触发器(tri

低调说 1万+

【python】使用APScheduler或Django-apscheduler实现定时任务

如果你在启动任务的时候指定了任务ID,可能会出现这种ID冲突的情况,只需要进入数据库找到django_apscheduler_djangojob表,修改ID或者删掉记录即可。之前在Django使用crontab来完成定时任务,还有一个更灵活的python工具APScheduler也可以完成。关于在Django使用crontab实现定时任务可以参考。3)可以对添加的定时任务做持久保存。触发器控制的是什么时候会执行任务。调度器是管理定时任务的。1)可以动态添加任务。在定时任务该执行时,以线程方式执行任务,

冰冷的希望的博客 5892

【Django+Apscheduler 开发定时任务模块】【四】

Django+Apscheduler 开发定时任务模块目录一、回顾二、定义定时任务函数和装饰器 目录 本文章要实现的是Django+Apscheduler 开发定时任务模块,并使用uwsgi+nginx模式部署, 且能避免多进程下任务重复执行,且能够页面动态操作任务; 一、回顾 上一节添加了页面的三个按钮,以及Apscheduler工具类 【Django+Apscheduler 开发定时任务模块】【一】 【Django+Apscheduler 开发定时任务模块】【二】 【Django+Ap

吃瓜的猫~ 2094

使用django_apscheduler为django设置定时任务

The issue I suspect your having is how to trigger the startup of that in Django. You have multiple options, mostly consisting of “putting it somewhere it will be run”. For example, add it to the botto...

qq_38963393的博客 777

【Django】如何正确使用定时任务(apscheduler 启动、停止)

顾名思义,定时任务是会在后台一直运行的,但是在使用过程中,我们还是会更新程序的,尤其是在刚开始写定时任务时,会频繁的启动定时程序,但是这样可能有问题的,每次启动程序都是打开了新的定时进程,前边的定时程序可能没有关闭,还在默默的帮你完成之前设定的工作(需要看实际情况)。网络上虽然有很多教程,其实使用方式都有些问题,真的不敢直接用。这里整理了我自己在django框架中使用定时程序的一点心得,如有需要可自取。提示:以下是本篇文章正文内容,下面案例可供参考自定义命令整理中这个目前还没做,有时间再补上。

黎明总是如期而至 5769

APScheduler、Django实现定时任务,以及任务动态操作

django配合apscheduler使用基本方法以及各种方法的调用

forevercui的博客 1720
上一篇: docker的使用---测试开发
下一篇: Layui--layer的弹窗的使用
木 叶
博客等级 码龄7年 20粉丝 76原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值