All Classes and Interfaces
Class
Description
简易值转换器将给定String值转为int,并限定最大值和最小值
此类同时识别
L 为最大值值匹配,始终返回
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"表示周六
定时任务表达式解析器,用于将表达式字符串解析为
MatcherTablecron处理程序的注解
定时作业,除了定义了作业,也定义了作业的执行周期以及ID
定时任务计时器
计时器线程每隔一分钟检查一次任务列表,一旦匹配到执行对应的Task
日期和时间的单一匹配器
每月第几天匹配
考虑每月的天数不同,切存在闰年情况,日匹配单独使用
每月的几号值处理
每月最多31天,32和“L”都表示最后一天
星期值处理
1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日
L表示周六作业执行器
执行具体的作业,执行完毕销毁
类似unix cron表达式提供解析器和执行器
Crontab表达式提供了指定复杂时间组合的能力
小时值处理
小时被限定在0-23
反射执行任务
通过传入类名#方法名,通过反射执行相应的方法
如果是静态方法直接执行,如果是对象方法,需要类有默认的构造方法
作业启动器
负责检查TaskTable是否有匹配到此时运行的Task
检查完毕后启动器结束
作业执行管理器
负责管理作业的启动、停止等
时间匹配表,用于存放定时任务表达式解析后的结构信息
分钟值处理
限定于0-59
月份值处理
限定于1-12,1表示一月,支持别名(忽略大小写),如一月是
jan定时任务表
任务表将ID、表达式、任务一一对应,定时任务执行过程中,会周期性检查定时任务表中的所有任务表达式匹配情况,从而执行其对应的任务
任务的添加、移除使用读写锁保证线程安全性
任务调度器
秒值处理
限定于0-59
简单监听实现,不做任何操作
继承此监听后实现需要的方法即可
任务执行规则
作业启动管理器
系统计时器
定时作业接口,通过实现execute方法执行具体的任务
定时任务监听接口
通过实现此接口,实现对定时任务的各个环节做监听
监听调度器,统一管理监听
延迟任务
任务队列,任务双向链表
多层时间轮,常用于延时任务
时间轮是一种环形数据结构,由多个槽组成,每个槽中存放任务集合
一个单独的线程推进时间一槽一槽的移动,并执行槽中的任务
值匹配器
用于匹配日期位中对应数字是否匹配
ValueMatcher 构建器,用于构建表达式中每一项的匹配器值处理接口
值处理用于限定表达式中相应位置的值范围,并转换表达式值为int值
年匹配
考虑年数字太大,不适合boolean数组,单独使用列表遍历匹配
年值处理
年的限定在1970-2099年