简介

Cron作为一个Unix工具,已经存在很长一段时间了,用于实现任务调度的功能。CronTrigger类基于Cron而来。

CronTrigger

CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。
CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。
即便如此,SimpleTrigger一样,CronTrigger拥有的startTime指定的时间表时生效,指定的时间表时,应停止(可选)结束时间。

如果你看到这段文字,说明您正使用RSS阅读或转自《一棵树-博客园》,原文地址:https://www.cnblogs.com/atree/p/quartz-Cron-Expressions.html

Cron表达式

Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成。

按顺序依次为 
秒(0~59) 
分钟(0~59) 
小时(0~23) 
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11) 
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 
7.年份(1970-2099)

其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 
0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时 
0 0 12 ? * WED 表示每个星期三中午12点 
有些子表达式能包含一些范围或列表 
例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT” 
“*”字符代表所有可能的值 
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天

“/”字符用来指定数值的增量 
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟 
         在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样

“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值 
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”

“L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写 
但是它在两个子表达式里的含义是不同的。 
在天(月)子表达式中,“L”表示一个月的最后一天 
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT 
如果在“L”前有具体的内容,它就具有其他的含义了 
例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五 
注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

Cron表达式范例:

每隔5秒执行一次:*/5 * * * * ?

每隔1分钟执行一次:0 */1 * * * ?

每天23点执行一次:0 0 23 * * ?

每天凌晨1点执行一次:0 0 1 * * ?

每月1号凌晨1点执行一次:0 0 1 1 * ?

每月最后一天23点执行一次:0 0 23 L * ?

每周星期天凌晨1点实行一次:0 0 1 ? * L

在26分、29分、33分执行一次:0 26,29,33 * * * ?

每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

Cron表达式生成工具

https://www.bejson.com/othertools/cron/

http://cron.qqe2.com/

https://www.pppet.net/

最新文章

  1. 怎样手动添加 Sublime 3 右键菜单
  2. 今天学习到的关于mysql数据库的linux命令
  3. ArcEngine开发 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
  4. Cpdetector编码识别
  5. HTML5 & CSS3 初学者指南(4) – Canvas使用
  6. 关于MATLAB处理大数据坐标文件2017526
  7. Java中public,protected,default,private的访问权限问题(简明扼要)
  8. CCNA笔记(3)
  9. Spring Framework 的 Assert断言
  10. Uva - 804 - Petri Net Simulation
  11. XSS Stored 测试
  12. 用Java编写第一个区块链
  13. xlwt使用
  14. 实现1sym转换成2个sym送给CVI(VGA数据)
  15. 算法笔记_216:第六届蓝桥杯软件类校赛部分真题(Java语言C组)
  16. C语言简明数据类型指南
  17. BitmapFactory.Options
  18. CAS客户端整合(二) Zabbix
  19. [HNOI2010]公交线路
  20. Hadoop Combiners

热门文章

  1. 车位iou计算
  2. 2018-8-10-win10-uwp-拖动控件
  3. css sprite responsive实现探究
  4. tf.reduce_sum() and tf.where()的用法
  5. 2019 物易云通java面试笔试题 (含面试题解析)
  6. Redis事务控制
  7. python部分笔记
  8. [linux]在使用rsync时需要注意的小细节
  9. day 35
  10. Django 练习班级管理系统七 -- 编辑老师列表(二)