All Classes and Interfaces
Class
Description
所有值匹配,始终返回
true将表达式中的数字值列表转换为Boolean数组,匹配时匹配相应数组位
定时任务工具类
此工具持有一个全局
Scheduler,所有定时任务在同一个调度器中执行
Builder.setMatchSecond(boolean) 方法用于定义是否使用秒匹配模式,如果为true,则定时任务表达式中的第一位为秒,否则为分,默认是分定时任务配置类
定时任务表达式构建器
定时任务表达式
表达式类似于Linux的crontab表达式,表达式使用空格分成5个部分,按顺序依次为:
分:范围:0~59
时:范围:0~23
日:范围:1~31,"L"表示月的最后一天
月:范围:1~12,同时支持不区分大小写的别名:"jan","feb", "mar", "apr", "may","jun", "jul", "aug", "sep","oct", "nov", "dec"
周:范围:0 (Sunday)~6(Saturday),7也可以表示周日,同时支持不区分大小写的别名:"sun","mon", "tue", "wed", "thu","fri", "sat","L"表示周六
cron处理程序的注解
定时作业,除了定义了作业,也定义了作业的执行周期以及ID
定时任务计时器
计时器线程每隔一分钟检查一次任务列表,一旦匹配到执行对应的Task
每月第几天匹配
考虑每月的天数不同,且存在闰年情况,日匹配单独使用
作业执行器
执行具体的作业,执行完毕销毁
类似unix cron表达式提供解析器和执行器
Crontab表达式提供了指定复杂时间组合的能力
反射执行任务
通过传入类名#方法名,通过反射执行相应的方法
如果是静态方法直接执行,如果是对象方法,需要类有默认的构造方法
作业启动器
负责检查TaskTable是否有匹配到此时运行的Task
检查完毕后启动器结束
作业执行管理器
负责管理作业的启动、停止等
表达式中的某个位置部分匹配器
用于匹配日期位中对应数字是否匹配
定时任务表达式各个部分的解析器,根据
Part指定不同部分,解析为PartMatcher
每个部分支持:
* :表示匹配这个位置所有的时间
? :表示匹配这个位置任意的时间(与"*"作用一致)
L :表示匹配这个位置允许的最大值
*/2 :表示间隔时间,例如在分上,表示每两分钟,同样*可以使用数字列表代替,逗号分隔
2-8 :表示连续区间,例如在分上,表示2,3,4,5,6,7,8分
2,3,5,8 :表示列表
wed :表示周别名
jan :表示月别名
单一表达式的匹配器,匹配器由7个
PartMatcher组成,分别是:定时任务表达式解析器,用于将表达式字符串解析为
PatternMatcher的列表定时任务表
任务表将ID、表达式、任务一一对应,定时任务执行过程中,会周期性检查定时任务表中的所有任务表达式匹配情况,从而执行其对应的任务
任务的添加、移除使用读写锁保证线程安全性
任务调度器
简单监听实现,不做任何操作
继承此监听后实现需要的方法即可
任务执行规则
作业启动管理器
系统计时器
定时作业接口,通过实现execute方法执行具体的任务
定时任务监听接口
通过实现此接口,实现对定时任务的各个环节做监听
监听调度器,统一管理监听
延迟任务
任务队列,任务双向链表
多层时间轮,常用于延时任务
时间轮是一种环形数据结构,由多个槽组成,每个槽中存放任务集合
一个单独的线程推进时间一槽一槽的移动,并执行槽中的任务
年匹配
考虑年数字太大,不适合boolean数组,单独使用
LinkedHashSet匹配