*、凡涉及到机器代替人以某种周期去完成的事情时,总会用到定时执行这样的需求,此时Quartz是不错的选择,那么怎么使用呢?请继续向下看,O(∩_∩)O哈哈~
华丽的分隔
*、首先要知道工厂如何用!
StdSchedulerFactory sdf = new StdSchedulerFactory(); 注意:项目里即使在不同的地方new了N个工厂,如果在下面的操作中不认真对待,会有大问题的哦!
*、工厂有了,那么该如何正确生产调度器这个产品呢?
Properties props = new Properties(); props.put("org.quartz.scheduler.instanceName", "QuartzConfig"+new Date().toString()); props.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool"); props.put("org.quartz.threadPool.threadCount", "1"); sdf.initialize(props); sd.scheduleJob(1,2); 其中,最关键的就是instanceName,也就是调度器的名称,名称不同,从工厂中获取的调度器也就不同,那么调度器之间的执行任务的周期呀,开启和关闭,也就不会被互相影响了,至于调度器之间的性能问题,还未深入,哈哈
*、调度器如何安排和设置任务呢?
JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, class);// 任务名,任务组,任务执行类 其中class是一个类的CLASS 若提供的是字符串类型的完整(包括包的路径)类名,可通过反射获取CLASS CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME);// 触发器名,触发器组 trigger.setCronExpression(time);// 触发器时间设定 sched.scheduleJob(jobDetail, trigger); 其中注意同一调度器的jobname不能出现相同的。 关于动态修改执行周期等参数,可以通过先移除当前任务,然后再添加的方式进行任务的更新。
*、如果我只想修改执行周期这个参数呢?
这个当然也是可以的啦!!! CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerName,triggerGroupName); if (trigger == null) { //根据触发器名称获取要修改的触发器 return; } String oldTime = trigger.getCronExpression(); if (!oldTime.equalsIgnoreCase(time)) {//判断执行时间是否一致 CronTrigger ct = (CronTrigger) trigger; // 重新修改触发器的执行时间 ct.setCronExpression(time); // 通过调度器重启触发器 sched.resumeTrigger(triggerName, triggerGroupName); }
*、嗯,还可能就是想只关闭其中一个任务!
也简单,按照如下流程即可 sched.pauseTrigger(触发器名称, TRIGGER_GROUP_NAME);// 停止触发器 sched.unscheduleJob(触发器名称, TRIGGER_GROUP_NAME);// 移除触发器 sched.deleteJob(任务名称, JOB_GROUP_NAME);// 删除任务
*、当前调度器的关闭和暂停
关闭是:shutdown 暂停是:standby 我喜欢暴力一点,哈哈,每次都是shutdown,然后重新添加任务再开启,因为standby好像会将暂停中的任务给补回来执行,这是我不想看到的现象!!!
相关推荐
这个小结将深入探讨Quartz的核心概念、使用场景以及如何与Spring框架集成。 一、Quartz简介 Quartz是由Caledonia Software公司开发的Java定时任务库,它提供了一种高度可配置的方式来安排和执行工作。Quartz支持...
这篇博客文章"quartz 在WEB中应用小结"以及《Quartz开发指南.pdf》提供了关于如何在Web环境中集成和使用Quartz 的深入指导。 一、Quartz 概述 Quartz 提供了丰富的API来创建和管理作业与触发器。作业是实际执行的...
小结 Quartz 是一个功能强大且灵活的任务调度框架,能够满足大多数的调度需求。Quartz 的高度灵活性、高度可控性和持久化机制使其成为企业应用中任务调度的不二之选。 附录 1 Quartz 任务调度框架的应用场景非常...
### 小结 Quartz作为一款成熟的任务调度框架,其强大的功能和易用性使其成为Java开发者的首选。通过灵活的Job和Trigger组合,以及持久化机制,开发者可以轻松地构建复杂而稳定的任务调度系统。同时,Quartz提供的...
10_知识点检测与小结.mp4 11_Elastic-Job框架介绍.mp4 12_初识Elastic-Job.mp4 13_急速入门Simple-1.mp4 14_急速入门Simple-2.mp4 15_急速入门dataflow.mp4 16_急速入门script.mp4 17_知识点检测与小结.mp4 18_...
目录 第一部分spring的核心 第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 ...1.5小结 ...2.6小结 ...3.7小结 ...4.6小结 ...5.8小结 ...6.5小结 ...7.7小结 ...8.6小结 ...9.6小结 ...b.4小结
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结
第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结
第1章 寻找grails之旅 1.1 java的困惑 1.2 webc2.0时代 1.3 java的力量 1.4 什么是grails 1.4.1 与java集成 ... 1.8 本章小结 ....... 2.4 本章小结 ... 3.10 本章小结 ... 11.7 本章小结
2.4 小结 20 第3章 处理基本交互 21 3.1 MVC范型 21 3.2 创建项目 22 3.3 创建视图控制器 22 3.3.1 输出口 23 3.3.2 操作 24 3.3.3 将操作和输出口添加到视图控制器 24 3.3.4 将操作和输出口添加到实现文件 26 3.4 ...
自定义视图和图形绘制26215.1 Quartz26215.1.1 页面(Page)26215.1.2 图形上下文(Graphics Context)26315.1.3 不透明数据类型(Opaque Data Type)26415.1.4 图形状态(Graphics States)26515.2 坐标系统...
1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...
1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...
2.4 小结 第3章 处理基本交互 3.1 模型-视图-控制器范型 3.2 创建项目 3.3 创建视图控制器 3.3.1 输出口 3.3.2 操作 3.3.3 将操作和输出口添加到视图控制器 3.3.4 将操作和输出口添加到实现文件 ...
#### 四、小结 通过以上步骤,我们已经成功配置了一个基于Spring和Quartz的定时任务,该任务每隔50秒会自动调用`LocalCacheRefreshServiceImpl`中的`refreshLocalCache`方法,以刷新本地缓存。这种方式不仅简单易用...
### 五、小结 通过上述介绍,我们可以看到Spring提供了非常丰富的任务调度支持。无论是简单的定时任务还是复杂的作业调度需求,都可以通过Spring框架高效实现。开发者可以根据具体的应用场景选择最适合的调度方式,...