`
阅读更多

*、凡涉及到机器代替人以某种周期去完成的事情时,总会用到定时执行这样的需求,此时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使用小结

    NULL 博文链接:https://aiappfine.iteye.com/blog/299528

    quartz 在WEB中应用小结

    博文链接:https://daoger.iteye.com/blog/195486

    Java分布式Elastic-Job和Quartz定时任务课程(1.6G)

    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 in action英文版

    第一部分 Spring基础  第1章 开始Spring之旅  1.1 为什么使用Spring  1.1.1 J2EE开发者的一天  1.1.2 Spring的承诺  1.2 Spring是什么 ... 1.3 开始Spring之旅 ... 1.7 小结 ... 11.6 小结

    Spring in Action(第2版)中文版

    目录 第一部分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 in Action(第二版 中文高清版).part2

    第一部分 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 in Action(第二版 中文高清版).part1

    第一部分 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 小结

    Grails权威指南

    第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 本章小结

    iphone3开发基础教程

    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 ...

    《iPhone开发实战》.(Christopher Allen).pdf

    1.5 小结11 第2章 web还是sdk12 2.1 比较两种编程风格12 .2.2 核心思想:编程的连续性13 2.3 优点和缺点14 2.3.1 web开发14 2.3.2 sdk开发15 2.3.3 程序平台16 2.4 独立iphone开发17 2.4.1 web...

    iPhone应用开发从入门到精通代码

    自定义视图和图形绘制26215.1 Quartz26215.1.1 页面(Page)26215.1.2 图形上下文(Graphics Context)26315.1.3 不透明数据类型(Opaque Data Type)26415.1.4 图形状态(Graphics States)26515.2 坐标系统...

    Spring.3.x企业应用开发实战(完整版).part2

    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 建立领域对象 ...

    Spring3.x企业应用开发实战(完整版) part1

    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 建立领域对象 ...

    iPhone开发基础教程PDF(含源代码)

     2.4 小结  第3章 处理基本交互  3.1 模型-视图-控制器范型  3.2 创建项目  3.3 创建视图控制器  3.3.1 输出口  3.3.2 操作  3.3.3 将操作和输出口添加到视图控制器  3.3.4 将操作和输出口添加到实现文件 ...

    Spring攻略(第二版 中文高清版).part2

    1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决方案 57 2.1.3 工作原理 57 2.2 调用一个实例工厂方法创建Bean 58 2.2.1 问题 58 2.2.2 ...

    Spring攻略(第二版 中文高清版).part1

    1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决方案 57 2.1.3 工作原理 57 2.2 调用一个实例工厂方法创建Bean 58 2.2.1 问题 58 2.2.2 ...

    spring chm文档

    14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...

Global site tag (gtag.js) - Google Analytics