Cron 触发器及相关内容 (第四部分)
来源:互联网 发布:flac那个播放软件好 编辑:程序博客网 时间:2024/06/05 20:19
七. Cron 表达式 Cookbook
此处的 Cron 表达式 cookbook 旨在为常用的执行需求提供方案。尽管不可能列举出所有的表达式,但下面的应该为满足你的业务需求提供了足够的例子。
·分钟的 Cron 表达式
表 5.1. 包括了分钟频度的任务计划 Cron 表达式
用法
表达式
每天的从 5:00 PM 至 5:59 PM 中的每分钟触发
0 * 17 * * ?
每天的从 11:00 PM 至 11:55 PM 中的每五分钟触发
0 0/5 23 * * ?
每天的从 3:00 至 3:55 PM 和 6:00 PM 至 6:55 PM 之中的每五分钟触发
0 0/5 15,18 * * ?
每天的从 5:00 AM 至 5:05 AM 中的每分钟触发
0 0-5 5 * * ?
·日上的 Cron 表达式
表 5.2. 基于日的频度上任务计划的 Cron 表达式
用法
表达式
每天的 3:00 AM
0 0 3 * * ?
每天的 3:00 AM (另一种写法)
0 0 3 ? * *
每天的 12:00 PM (中午)
0 0 12 * * ?
在 2005 中每天的 10:15 AM
0 15 10 * * ? 2005
·周和月的 Cron 表达式
表 5.3. 基于周和/或月的频度上任务计划的 Cron 表达式
用法
表达式
在每个周一,二, 三和周四的 10:15 AM
0 15 10 ? * MON-FRI
每月15号的 10:15 AM
0 15 10 15 * ?
每月最后一天的 10:15 AM
0 15 10 L * ?
每月最后一个周五的 10:15 AM
0 15 10 ? * 6L
在 2002, 2003, 2004, 和 2005 年中的每月最后一个周五的 10:15 AM
0 15 10 ? * 6L 2002-2005
每月第三个周五的 10:15 AM
0 15 10 ? * 6#3
每月从第一天算起每五天的 12:00 PM (中午)
0 0 12 1/5 * ?
每一个 11 月 11 号的 11:11 AM
0 11 11 11 11 ?
三月份每个周三的 2:10 PM 和 2:44 PM
0 10,44 14 ? 3 WED
八. 创建一个即刻触发的 Trigger
有时候,你需要立即执行一个 job。例如,想像一下,你正在构建一个 GUI 程序并允许用户能立刻执行。另一个例子,你或许已经检测到了某个 Job 未执行成功,因此你想要即刻重跑一次。在 Quartz 1.5,有几个方法被加入到了 TriggerUtils 类中,使得实现那些事很容易了。代码 5.4 展示了如何部署一个 job,只让它立即执行一次。
代码 5.4. 你可以用 TriggerUtils 来立即执行一个 Job
- public class Listing_5_4 {
- static Log logger = LogFactory.getLog(Listing_5_4.class);
- public static void main(String[] args) {
- Listing_5_4 example = new Listing_5_4();
- example.runScheduler();
- }
- public void runScheduler() {
- Scheduler scheduler = null;
- try {
- // Create a default instance of the Scheduler
- scheduler = StdSchedulerFactory.getDefaultScheduler();
- scheduler.start();
- logger.info("Scheduler was started at " + new Date());
- // Create the JobDetail
- JobDetail jobDetail = new JobDetail("PrintInfoJob",
- Scheduler.DEFAULT_GROUP,
- PrintInfoJob.class);
- // Create a trigger that fires once right away
- Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0);
- trigger.setName("FireOnceNowTrigger");
- scheduler.scheduleJob(jobDetail, trigger);
- } catch (SchedulerException ex) {
- logger.error(ex);
- }
- }
- }
public class Listing_5_4 { static Log logger = LogFactory.getLog(Listing_5_4.class); public static void main(String[] args) { Listing_5_4 example = new Listing_5_4(); example.runScheduler(); } public void runScheduler() { Scheduler scheduler = null; try { // Create a default instance of the Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); scheduler.start(); logger.info("Scheduler was started at " + new Date()); // Create the JobDetail JobDetail jobDetail = new JobDetail("PrintInfoJob", Scheduler.DEFAULT_GROUP, PrintInfoJob.class); // Create a trigger that fires once right away Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0); trigger.setName("FireOnceNowTrigger"); scheduler.scheduleJob(jobDetail, trigger); } catch (SchedulerException ex) { logger.error(ex); } }}
在代码 5.4 中,TriggerUtils 的 makeImmediateTrigger() 方法被用来立即执行一个 Job。第一个参数是将要触发的次数。第二个参数是执行的间隔时间。为方便起见,这个方法的签名显示如下:
public static Trigger makeImmediateTrigger(int repeatCount, long repeatInterval);
TriggerUtils 类提供了许多便利的方法简化了 Trigger 的使用。确切地检查一下这个工具类中看看是否有你想要的东西。你还将在本书上看到更多的使用 TriggerUtils 的例子。
- Cron 触发器及相关内容 (第四部分)
- Cron 触发器及相关内容 (第一部分)
- Cron 触发器及相关内容 (第二部分)
- Cron 触发器及相关内容 (第三部分)
- Quartz 里的触发器及Cron 表达式
- quartz cron触发器表达式
- Quartz Cron 触发器
- vim 配置 部分相关内容
- Quartz Cron 触发器 Cron Expression 的格式
- Quartz Cron 触发器 Cron Expression 的格式
- Quartz Cron 触发器 Cron Expression 的格式
- StringBuffer类及相关内容
- oracle行级insert触发器的写法及部分知识点
- Quartz中CronTrigger(Cron 触发器)使用的 Cron表达式
- Quartz中CronTrigger(Cron 触发器)使用的 Cron表达式
- Android高手速成--第四部分 开发工具及测试工具
- Unity3D面试题整合——第四部分及答案
- Quartz.NET学习系列(三)--- Cron触发器
- java 泛型基础概念
- 《HTML5经典实例》读书笔记二
- web前端性能优化总结
- Loadrunner视频教程汇总
- jrtplib项目的了解
- Cron 触发器及相关内容 (第四部分)
- Java中使用OpenSSL生成的RSA公私钥进行数据加解密
- LeetCode 35 Search Insert Position
- android根据uri或文件绝对路径获取文件基本信息
- Android框架之EventBus的使用
- DataGuard主备切换及故障切换
- jquery判断一个文件是否存在函数写法的历程
- React-Native(三)--Button
- Job 存储和持久化 (第一部分)