quart定时任务从数据库获取定时时间

article/2025/9/14 3:26:40

在ssm项目里面实现定时任务从数据库获取定时时间

1.创建定时时间表

定时任务时间表

2.创建定时任务类
package com.tencent.tusi.test.quartzTest;import com.tencent.tusi.business.entity.TSystemUsers;
import com.tencent.tusi.business.service.TSystemUsersService;
import org.springframework.beans.factory.annotation.Autowired;import static com.tencent.tusi.currency.utils.DateUtil.now;public class InsertUserAfterTenSecond {@Autowiredpublic TSystemUsersService tSystemUsersService;public void insertRecord(){TSystemUsers user=new TSystemUsers();user.setcUserName("汤师爷");user.setcPassWord("984646");user.setcAddress("m78");user.setcPhone("11000");user.setcSex("女");user.setcDepartmentId(2);user.setRegisterTime(now());int i = tSystemUsersService.insertUser(user);if(i>0){System.out.println("===========================插入了一条===========================");}}}

这个任务类的功能是插入一条数据。

2.在配置文件里面配置任务类
<bean id="insertUserAfterTenSecond2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><bean class="com.tencent.tusi.test.quartzTest.InsertUserAfterTenSecond"/></property><property name="targetMethod" value="insertRecord"/><!--不并发调度--><property name="concurrent" value="false"/></bean>
3.定义定时时间
<bean id="inertUserTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="insertUserAfterTenSecond2"/><!--定时时间,10秒一次,cron表达式--><property name="cronExpression" value="*/10 * * * * ?"/></bean>

因为xml文件无法实现直接从数据库读时间,所以先任意配置cron表达式,后面用数据库里面的时间替换掉就行。

4.从数据库获取配置时间
<bean id="insertByDatabaseTime" class="com.tencent.tusi.test.quartzTest.InsertUserByDatabaseTime" lazy-init="false" init-method="init"><property name="scheduler" ref="quartzSchedulerFactoryBean"/></bean>

lazy-init=“false” 表示立即加载。即在spring容器启东是就加载。method=“init” 是指定获取数据库定时时间的启动方法。class路径是获取数据库定时时间的类路径,scheduler属性是打开调度器。

调度工厂

<bean id="quartzSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  <!-- <property name="autoStartup" value="true"/> --><!-- 自动启动 --><!-- <property name="startupDelay" value="15" /> --><property name="triggers">  <list>  <ref bean="inertUserTrigger2"/></list></property><property name="taskExecutor" ref="executor" /></bean> 
5.更改时间为数据库时间
package com.tencent.tusi.test.quartzTest;import com.tencent.tusi.business.entity.TQuartzTestTime;
import com.tencent.tusi.business.service.TQuartzTestTimeService;
import com.tencent.tusi.currency.utils.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;import java.sql.Time;public class InsertUserByDatabaseTime {private Scheduler scheduler;@Autowiredprivate TQuartzTestTimeService tQuartzTestTimeService;public void init(){TQuartzTestTime tQuartzTestTime = tQuartzTestTimeService.getAllTQuartzTestTime(2);Time getTime= null;String cronTime = "";if(tQuartzTestTime!=null){//拿到数据库里面的定时时间getTime = tQuartzTestTime.getExecuteTime();}if(getTime!=null){//将数据库里面的定时时间转换为cron表达式cronTime = DateUtil.getCronByTime(getTime);}if(StringUtils.isNotBlank(cronTime)){TriggerKey triggerKey = TriggerKey.triggerKey("inertUserTrigger2");
//try {
//                CronTrigger cronTrigger = (CronTrigger) scheduler.getTrigger(triggerKey);//                String oldTime = cronTrigger.getCronExpression();
//                System.out.println("旧时间"+oldTime);TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();triggerBuilder.withIdentity("inertUserTrigger2");//任务开始时间triggerBuilder.startNow();//触发器时间triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule(cronTime));//创建trigger对象CronTrigger cronTrigger = (CronTrigger) triggerBuilder.build();//修改触发时间scheduler.rescheduleJob(triggerKey,cronTrigger);} catch (SchedulerException e) {e.printStackTrace();}}}public Scheduler getScheduler() {return scheduler;}public void setScheduler(Scheduler scheduler) {this.scheduler = scheduler;}
}

这个定时任务实现的功能是在每天的14:45和15:10插入一条数据
定时任务结果


http://chatgpt.dhexx.cn/article/nYfOKbfA.shtml

相关文章

递推—双关系递推数列

题目描述&#xff1a; 算法思想&#xff1a; 首先定义三个“指针”i,p2&#xff0c;p5&#xff0c;计算出2*p21,和5*p5-1&#xff0c;进行比较&#xff0c;按从小到大的顺序排好&#xff08;有点像归并&#xff09; 实现代码&#xff1a; #include<iostream> #include&…

两类递推数列

此博客是抄论文的&#xff0c;你可以认为是转载的 1.线性递推数列 有限数列显然是线性递推数列。 无限数列 a i a_i ai​设其生成函数为 A ( x ) A(x) A(x) 那么如果 A ( x ) A(x) A(x)能被表示为 C ( x ) B ( x ) \frac {C(x)}{B(x)} B(x)C(x)​的形式&#xff0c;其中 B ( …

整式递推数列

详见钟子谦IOI2019国家集训队论文。 对于无限数列 { a i } \{a_i\} {ai​}和有限多项式数列 { P i } \{P_i\} {Pi​}满足 P 0 P_0 P0​非 0 0 0多项式。 若对任意 p > ∣ { P } ∣ − 1 p>|\{P\}|-1 p>∣{P}∣−1有 ∑ i 0 ∣ { P } ∣ − 1 a p − i P i ( p ) \su…

算法设计与分析:枚举和递推的运用 ————双关系递推数列

头歌实验&#xff1a; 第一关&#xff1a;双关系递推数列 任务描述 本关任务&#xff1a;运用枚举和递推的基本思想&#xff0c;通过编程计算出双关系递推数列。设集合 M 定义如下&#xff1a; 1.初始 1∈M&#xff1b; 2.若x∈M&#xff0c;则有2x1∈M&#xff0c;5x−1∈…

递推数列的计算

利用递归函数 我们最熟悉的一个递推数列就是斐波那契数列。 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , . . . 1, 1, 2, 3, 5, 8, 13, 21, ... 1,1,2,3,5,8,13,21,...&#xff0c;斐波那契数列规定数列的第一个元素和第二个元素都为1&#xff0c;后面的元素是前两个元素之和&#xff…

极限求解--递推型数列

本文来自于公众号【考研数学直线笔记】 0 序言 递推型数列&#xff0c;一般可以表示为x(n1)f(x(n))&#xff0c;这一类题目的基本思想都是“先证明数列的极限存在&#xff0c;然后再求出极限值”&#xff0c;求极限值比较简单&#xff0c;设极限求等式就行了&#xff0c;难点在…

Autohotkey window 下宏键盘、宏命令开发入门

? ? ? ? 我的AHK下载地址:https://github.com/dragon8github/Pandora/raw/master/pandora.exe AutoHotKey 下载:https://autohotkey.com/download/ 国内自制的ahk网站:https://www.autoahk.com/ 推荐下载installer 官方网站:https://www.autohotkey.com/docs/AutoHot…

【开源项目分享】GitHub中文排行榜 - 帮助你发现高分优秀中文项目-Java

榜单设立目的 &#x1f1e8;&#x1f1f3; GitHub中文排行榜&#xff0c;帮助你发现高分优秀中文项目&#xff1b;各位开发者伙伴可以更高效地吸收国人的优秀经验、成果&#xff1b;中文项目只能满足阶段性的需求&#xff0c;想要有进一步提升&#xff0c;还请多花时间学习高分…

HTML+CSS+JS+Servlet+MSQL搭建个人博客

3.应用技术&#xff1a;HTMLCSSJSJSPServletMSQL 前端后台管理。 4.开发环境&#xff1a;eclipsejdk1.8tomcat8.5 mysql5.7前端Layui。 二、前端 1.博客首页 博主和用户可以访问到博客系统的首页&#xff0c;首页内容主要包括导航条&#xff0c;文章推荐和登录注册管理模块…

用 Dev-C++ 编写简单的走迷宫小游戏

用 Dev-C 编写简单的走迷宫小游戏 前言基础版优化版 前言 以下是显示效果 B站视频讲解&#xff1a;【小游戏】用 Dev-C 编写简单的控制台走迷宫小游戏 【小游戏】用 Dev-C 编写简单的控制台走迷宫小游戏 基础版 用 # 代表墙 用 空格 代表空地 用 O 代表玩家 地图存储&#…

简单的迷宫问题(DFS/BFS分别求解)

简单的迷宫问题 题目描述输入样例输出样例 dfs解题思路(深搜)路线规划DFS特点C源码(DFS) bfs解题思路(广搜)路线规划测试代码段BFS特点C源码&#xff08;BFS&#xff09; 题目描述 现在需要你来规划一条路线&#xff0c;从起点到终点的最短路线。 给你一个nm的地图&#xff08;…

基于JAVA的简单迷宫游戏

一、实验要求 1. 迷宫游戏是非常经典的游戏&#xff0c;在该题中要求随机生成一个迷宫&#xff0c;并求解迷宫。 2. 要求游戏支持玩家走迷宫&#xff0c;和系统走迷宫路径两种模式。玩家走迷宫&#xff0c;通过键盘方向键控制&#xff0c;并在行走路径上留下痕迹&#xff1b;系…

C++实现简单的走迷宫

c实现简单走迷宫 用n*n个小方格代表迷宫&#xff0c;每个方格上有一个字符0或1&#xff0c;0代表这个格子不能走&#xff0c;1代表这个格子可以走。只能一个格子一个走&#xff0c;而且只能从一个格子向它的上、下、左、右四个方向走&#xff0c;且不能重复。迷宫的入口和出口分…

迷宫问题(简单模拟)

目录导航 图解体会领悟&#xff1a;代码实现&#xff08;Java&#xff09;&#xff1a;C语言版C版 为了复习递归&#xff0c;而模拟学习的。所以迷宫不大&#xff0c;总体是8行7列。 图解 A为起点&#xff0c;B为终点。 如下图在A和B之间设置挡板被隔绝之后&#xff0c;结果如…

超级简单的迷宫代码 初学者程序

迷宫 走迷宫一种比较有趣&#xff0c;操作简单的小游戏。 #include<stdio.h> #include<getch.h> #include<stdlib.h> #include<time.h> int main(int argc,const char*argv[]) {//构造迷宫地图char maze[10][10]{{#,#,#,#,#,#,#,#,#,#},{#,,#,#,#,#…

最简单的迷宫求解

在计算机中&#xff0c;我们可以把迷宫当做一个二维数组。其中0表示通路&#xff0c;1表示墙。 我们以下图为例&#xff0c;对于只有一条通路的简单迷宫进行求解 该迷宫存储在“Map.txt”文档中。 对于该迷宫&#xff0c;我们首先将入口点压入栈中&#xff0c;然后通过对该点…

JAVA 中实现的简单的迷宫小游戏

多的不说&#xff0c;直接上代码&#xff0c;就是一个简单的迷宫小游戏。 import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Random; import java.util.Stack; import javax.swing.JFr…

Python实现迷宫游戏

项目&#xff1a;迷宫游戏 摘要1.引言1.1研究的背景及意义1.2研究的内容 2.系统结构2.1系统的结构2.2基本思路 3.实现代码3.1Maze类3.2Player类3.3Controller类3.4主函数 4.实验5.总结和展望参考文献 摘要 本次实验设计了一款迷宫小游戏&#xff0c;采用用Python开发技术实现。…

C语言实现简单迷宫

C语言实现迷宫程序 前言 大家小时候一定都玩过迷宫这个游戏&#xff0c;很吸引人吧&#xff0c;有那种走不出来就不罢休的执着&#xff0c;然后走出来了觉得自己很强&#xff0c;自己可以了&#xff0c;接着激动的开始下一个关卡&#xff0c;慢慢的沉溺在迷宫的世界里了。 然…