Spring Boot 定时任务之Quartz
来源:互联网 发布:ci 数据库配置 编辑:程序博客网 时间:2024/06/04 23:32
Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application。
前言
当定时任务愈加复杂时,使用Spring注解@Schedule已经不能满足业务需要。 Quartz
的优点:
- 丰富的Job操作API;
- 支持多种配置;
- Spring Boot无缝集成;
- 支持持久化;
- 支持集群。
Quartz还支持开源,是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中。
核心概念
- Job接口,实现类写具体的业务逻辑。
- JobDetail 封装Job详细信息,如Job分组、名称、执行Job的类。
- Trigger 触发器,记录触发器分组、名称、定时表达式。
- CronExpression 定时表达式,封装在Trigger中。
- Schedule 调度器。Schedule动态操作Job。如新增、更新、暂停、启动、删除、立即执行等。JobDetail 、Trigger 需要注册到Schedule中。
集成
Spring Boot 对集成Quartz提供了很好的支持,只需要在pom
文件中添加以下依赖即可。
<!--quartz--> <!-- 该依赖必加,里面有spring对schedule的支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency>
代码实现
完整实现如下:
//定义一个Job,必须实现org.quartz.Job 接口public class JobTest implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("This is a test!!!" + new Date()); } public static void main(String[] args) { try { //1.实例化并开始一个调度器Schedule // Grab the Scheduler instance from the Factory Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // and start it off scheduler.start(); //2.添加触发器 // define the job and tie it to our MyJob class JobDetail jobDetail = newJob(JobTest.class).withIdentity("job1", "group1").build(); // Trigger the job to run now, and then repeat every 40 seconds forever Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startNow().withSchedule(simpleSchedule().withIntervalInSeconds(40).repeatForever()).build(); // Tell quartz to schedule the job using our trigger scheduler.scheduleJob(jobDetail, trigger); } catch (SchedulerException e) { e.printStackTrace(); } }}
结果
参照
quartz-scheduler
阅读全文
1 0
- Spring Boot 定时任务之Quartz
- Spring定时任务之quartz
- spring定时任务之quartz
- spring定时任务之quartz
- spring定时任务之quartz
- spring定时任务之quartz
- spring定时任务之quartz
- spring定时任务之quartz
- spring定时任务之quartz
- Spring-定时任务之Quartz
- Spring定时任务之Quartz
- Spring定时任务之Quartz
- spring实现定时任务之Quartz 1
- spring实现定时任务之Quartz 2
- spring实现定时任务之Quartz 3
- 定时任务之Timer,Quartz,Spring task
- Spring+Quartz定时任务
- spring quartz 定时任务
- AngularJS实战之filter的使用二
- c++ 中缀表达式转后缀表达式 计算器
- C++11中的匿名函数(lambda函数,lambda表达式)
- HDU 6180 Schedule
- crypto++ User Guide: filters.h学习笔记
- Spring Boot 定时任务之Quartz
- linux 字符设备入门学习笔记
- 【redis】RDB 持久化
- 【USACO3.3.5】游戏(区间dp的滚动数组与编码问题)
- Sparkler:Spark上的爬虫
- 【Linux学习笔记】10:帮助命令man
- 集合
- opencv 中Mat的一些操作
- Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002解决办法