使用Quartz来实现动态定时任务
springboot+Quartz来实现动态的定时任务
先在pom.xml中导入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
JAVA配置类
package cn.wideth.util;import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** quartz的配置类*/
@Configuration
public class QuartzConfig {@Beanpublic JobDetail printTimeJobDetail(){return JobBuilder.newJob(PrintTimeJob.class)//PrintTimeJob我们的业务类.withIdentity("PrintTimeJob")//可以给该JobDetail起一个id//每个JobDetail内都有一个Map,包含了关联到这个Job的数据,在Job类中可以通过context获取.usingJobData("msg", "Hello Quartz")//关联键值对.storeDurably()//即使没有Trigger关联时,也不需要删除该JobDetail.build();}@Beanpublic Trigger printTimeJobTrigger() {//此处的时间可以灵活配置,和数据库进行交互Integer time = 2;StringBuffer cron = new StringBuffer();//注意cron表达式要书写正确,注意格式cron.append("*/").append(String.valueOf(time)).append(" * * * * ?");CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cron.toString());return TriggerBuilder.newTrigger().forJob(printTimeJobDetail())//关联上述的JobDetail.withIdentity("quartzTaskService")//给Trigger起个名字.withSchedule(cronScheduleBuilder).build();}
}
JAVA定时任务业务逻辑处理类
package cn.wideth.util;import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import java.text.SimpleDateFormat;
import java.util.Date;/*** 定时任务业务处理类,我们继承QuartzJobBean* 重写executeInternal方法来实现具体的定时业务逻辑*/
public class PrintTimeJob extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context) throws JobExecutionException {//获取JobDetail中关联的数据String msg = (String) context.getJobDetail().getJobDataMap().get("msg");System.out.println("current time :"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "---" + msg);}
}
使用Quartz来实现动态定时任务相关推荐
- springboot和quartz整合实现动态定时任务(持久化单节点)
Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...
- Quartz在Spring中设置动态定时任务 .
什么是动态定时任务: 是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定).这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文 ...
- Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
2019独角兽企业重金招聘Python工程师标准>>> 什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定). 这样总不能修改 ...
- java quartz 动态执行,浅谈SpringBoot集成Quartz动态定时任务
SpringBoot自带schedule 沿用的springboot少xml配置的优良传统,本身支持表达式等多种定时任务 注意在程序启动的时候加上@EnableScheduling @Schedule ...
- 动态定时任务数据库获取方式
Spring 中,创建定时任务除了使用@Scheduled 注解外,还可以使用 SchedulingConfigurer. @Schedule 注解有一个缺点,其定时的时间不能动态的改变,而基于 Sc ...
- 定时任务:创建静态定时任务、动态定时任务
定时任务有三种实现 1 jdk自带的定时任务 2 Quartz插件实现的定时任务,需要引入额外的包 3 SpringTask定时调度,是对jdk的再一次封装,不用引入其他包了,用spring的包就自带 ...
- ASP.NET Core 2.2+Quartz.Net 实现Web定时任务
作者:Julian_酱 链接:http://www.cnblogs.com/mi12205599/p/10361763.html 作为一枚后端程序狗,项目实践常遇到定时任务的工作,最容易想到的的思路就 ...
- ASP.NET Core+Quartz.Net实现web定时任务
点击蓝色"Dotnet Plus"关注我哟 加个"星标",每天清晨 07:25,干货推送! 作为一枚后端程序狗,项目实践常遇到定时任务的工作,最容易想到的的思路 ...
- python apscheduler 动态_基于Flask-APScheduler实现添加动态定时任务
阅读目录 一.apSheduler 二.Flask-APScheduler 三.动态定时任务 四.uwsgi部署注意事项 一.apSheduler 第一部分内容限于apSheduler3.0以下版本, ...
最新文章
- 湖南网络推广浅析外链怎么发才会更快的收录?
- 只有学霸才懂的学习技巧,看完脑洞大开,绝对涨姿势!
- QT项目开发与团队合作
- UCSD本科数学计算机专业前景如何,2020年UCSD计算机工程排名真该小心来考查
- 使用vsphere平台部署xendesktop时注意事项。
- pc控制iphone的软件_iPhone照片视频传输及HEIC照片转档
- 敏捷开发系列学习总结(9)——10大流行编程方法
- String中的==与Empty
- Asp.net发布网站
- 动态通讯录(动态内存开辟)(C语言)
- c++获取ctrl+v内容_WPS表格——CTRL快捷键的用法
- W3CSchool CHM API 帮助文档(全)
- 【JY】YJK前处理参数详解及常见问题分析(六):地震信息
- 数据分类分级指南分级方法
- 一维码Code 128简介及其解码实现 zxing-cpp
- Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹
- android 入门教程速成,Android入门基础教程(小白速成1)
- 用python做一个木马_Python编程简单的木马程序(转载于乌云中)
- 全球及中国红外探测器芯片行业发展动态及投资应用前景调研报告2021-2027年
- 定制XP的启动界面更换背景图和windows字样