任务调度概述:
在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情。
核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作;
任务调度涉及多线程并发、线程池维护、运行时间规则解析、运行现场的保护以恢复等方面。
Quartz框架是一个开源的企业级任务调度服务,已经被作为任务调度的良好解决方案。
Quartz框架核心概念:
对任务调度进行了高度抽象,提出3个核心概念,并在org.quartz包通过接口和类进行描述
- 任务:执行的工作内容,Quartz提供Job接口来支持任务定义;
- 触发器:定义触发Job执行的时间触发规则,Quartz提供Trigger类及其子类支持触发器功能;
- 调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行。
**SimpleTrigger:**通过设置触发器的属性:开始时间、结束时间、重复次数、重复间隔等;
**CronTrigger:**通过Cron表达式定义准确的运行时间点。
CronTrigger cronTrig=new CronTrigger(“触发器名”,”组名”,”Crom表达式”);
**Cron表达式:*由6-7个由空格间隔元素组成,第7个元素可选。
Cron 表达式的每个字段,都可以显式规定一个值、范围、列表或者一个。
- -:中划线,表示范围;
- ,:逗号间隔数据,表示一个列表;
- *:表示任意值,可以用于所有字段;
- ?:仅用于“月份中的哪一天”和“星期几”字段,表示不指定值;
- /:x/y,x为起始值,y为增量;
- L:表示最后一天,仅在“日期”和“星期”字段;
- #:只能用于“星期几”字段,表示这个月的第几个周几。“6#3”指这个月第三个周五。