Quartz cron表达式分析 (版本2.1.7)
来源:互联网 发布:网络变压器加工 编辑:程序博客网 时间:2024/05/18 17:44
Cron表达式是以5个或者6个空格隔开,分成6个或7个域,每个域代表一个时间域。Cron表达式有以下两种语法格式:
1. Seconds Minutes Hours DayofMonth Month DayofWeek Year
2. Seconds Minutes Hours DayofMonth Month DayofWeek
Month取值:
1. 一月:JAN或0
2. 二月:FEB或1
3. 三月:MAR或2
4. 四月:APR或3
5. 五月:MAY或4
6. 六月:JUN或5
7. 七月:JUL或6
8. 八月:AUG或7
9. 九月:SEP或8
10. 十月:OCT或9
11. 十一月:NOV或10
12. 十二月:DEC或11
DayofMonth取值:
1. 数字
2. 表示最后:L
3. 有效工作日(周一至周五):W (系统将在离指定日期最近的有效工作日执行。比如5W,如果5日是工作日,则在当天触发;如果5日是周六,则会延期在周一触发。注意:W不会跨月。比如30W,30号是周六,则不会顺延至下周一来执行)
DayofWeek取值:
1. 周日:SUN或1
2. 周一:MON或2
3. 周二:TUE或3
4. 周三:WED或4
5. 周四:THU或5
6. 周五:FRI或6
7. 周六:SAT或7
8. 表示最后:L
域中符号解释:
1. * :表示匹配任意值。比如在Seconds域中配置为*,则表示每秒执行。(可用于任意域)
2. ?:只能用在 DayofMonth和DayofWeek,表示匹配该域的任意值。
3. -:表示范围。例如:在Seconds域中配置2-10,则表示从2到10秒内,每秒执行。
4. /:表示从起始开始触发,然后每个固定时间执行一次。比如在Seconds域中配置5/20,则表示在第5秒开始执行,然后每过20秒执行一次(以每一分钟为周期)。
5. ,:表示枚举值。例如在Seconds域中配置5,20,25,则表示在第5秒、20秒和25秒执行。
6. L:只能用在 DayofMonth和DayofWeek,表示每周或者每月的最后一天。如果DayofWeek域配置5L则表示最后一个星期的周四执行。
7. W:只能用在DayofMonth域,
//初始化带cron表达式的调度器:SchedulerFactory sf =new StdSchedulerFactory(); Scheduler scheduler = sf.getScheduler(); //指定调度器执行的类 JobDetail job = newJob(HelloJob.class) .withIdentity("job1","group1") .build(); //创建一个cron表达式的触发器 CronTrigger trigger = newTrigger() .withIdentity("trigger1", "group1")// .withSchedule(cronSchedule("1,2,3,40,50 * * * * ?")) //每分钟的第1,2,3,40,50秒执行// .withSchedule(cronSchedule("1-30 * * * * ?")) // 在1-30中的每秒执行// .withSchedule(cronSchedule("* * * * * ?")) // 每秒执行// .withSchedule(cronSchedule("5/20 * * * * ?")) // 从第5秒开始执行后,每过20秒执行一次(一分钟内)。分别在5,25,45秒执行// .withSchedule(cronSchedule("50 19 * * * ?")) // 每个小时的第19分钟50秒执行// .withSchedule(cronSchedule("0 0/10 * * * ?")) // 每10分钟执行一次// .withSchedule(cronSchedule("0 30 0/1 * * ?")) // 每小时的第30分钟执行// .withSchedule(cronSchedule("0 38 15 * * ?")) // 每日的15:38分钟执行// .withSchedule(cronSchedule("0 45 15 ? * MON-FRI")) // 每周周一至周五的15:45分执行// .withSchedule(cronSchedule("0 47 15 ? * FRI")) // 每周五的15:47分执行// .withSchedule(cronSchedule("0 50 15 ? * 6,7")) // 每周的周五和周六的15:47分执行// .withSchedule(cronSchedule("0 31 16 6 6 ? *")) //每年的6月6号的16:31分执行// .withSchedule(cronSchedule("0 33 16 6 * ?")) //每月的6号16:33分执行// .withSchedule(cronSchedule("0 33 16 6 1,8 ?")) //每年第1月、8月 6号16:33执行 .withSchedule(cronSchedule("0 35 16 8 1 ?")) //每年第1月8号16:35执行 .build();//将执行类与触发器设置进定时器中 scheduler.scheduleJob(job,trigger); //启动定时器 scheduler.start();
"1 * * * *?" //表示每分钟的第1秒执行"1,2,3,40,50 * ** * ?" //表示每分钟的第1、2、3、40、50秒执行"1-30 * * * *?" //在1-30中每秒执行"* * * * *?" //每秒循环"5/20 * * * *?" // 从第5秒开始执行后,每过20秒执行一次(一分钟内)。分别在5,25,45秒执行"50 19 * * *?" //每个小时的19分50秒执行"0 0/10 * * *?" // 每10分钟执行一次"0 30 0/1 * *?" // 每小时的第30分钟执行"0 38 15 * *?" // 每日的15:38分钟执行"0 45 15 ? *MON-FRI" // 每周周一至周五的15:45分钟执行。注意:此时的DayofMonth域必须为?"0 50 15 ? *6,7" // 每周的周五和周六的15:47分执行"0 31 16 6 6 ?*" //每年的6月6号的16:31分执行"0 33 16 6 *?" //每月的6号16:33分执行"0 33 16 6 1,8?" //每年第1月、8月 6号16:33执行
- Quartz cron表达式分析 (版本2.1.7)
- Quartz的cron表达式
- Quartz的cron表达式
- quartz cron 表达式详解
- quartz cron 表达式详解
- Quartz cron表达式
- Quartz的cron表达式
- quartz cron 表达式详解
- quartz cron 表达式详解
- Quartz的cron表达式
- quartz cron 表达式详解
- Quartz的cron表达式
- Quartz的cron表达式
- Quartz的cron表达式
- Quartz的Cron表达式
- quartz cron触发器表达式
- Quartz的cron表达式
- Quartz的cron表达式
- 工作中注意submit 和button的用法
- Gibbs sampler
- USB协议[转]
- 在线查看图片
- C++ Primer 学习笔记十四 —— 重载操作符与转换
- Quartz cron表达式分析 (版本2.1.7)
- Java读取文件内容
- AppScan安全漏洞报告
- 《设计模式》笔记:状态模式
- 利用Hibernate从持久化类生成数据表
- 用 VC++建立 Windows 服务程序
- 挑战题:字符串转换成整数 “456”转换456
- 程序员学习能力提升三要素
- spring batch(二):核心部分(1):配置Spring batch