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 检查完毕后启动器结束
作业执行管理器 负责管理作业的启动、停止等
表达式各个部分的枚举,用于限定在表达式中的位置和规则(如最小值和最大值)
Enum.ordinal()表示此部分在表达式中的位置,如0表示秒
表达式各个部分的枚举位置为:
表达式中的某个位置部分匹配器 用于匹配日期位中对应数字是否匹配
定时任务表达式各个部分的解析器,根据Part指定不同部分,解析为PartMatcher 每个部分支持: * :表示匹配这个位置所有的时间 ? :表示匹配这个位置任意的时间(与"*"作用一致) L :表示匹配这个位置允许的最大值 */2 :表示间隔时间,例如在分上,表示每两分钟,同样*可以使用数字列表代替,逗号分隔 2-8 :表示连续区间,例如在分上,表示2,3,4,5,6,7,8分 2,3,5,8 :表示列表 wed :表示周别名 jan :表示月别名
单一表达式的匹配器,匹配器由7个PartMatcher组成,分别是:
定时任务表达式解析器,用于将表达式字符串解析为PatternMatcher的列表
定时任务表 任务表将ID、表达式、任务一一对应,定时任务执行过程中,会周期性检查定时任务表中的所有任务表达式匹配情况,从而执行其对应的任务 任务的添加、移除使用读写锁保证线程安全性
RunnableTask包装
任务调度器
简单监听实现,不做任何操作 继承此监听后实现需要的方法即可
任务执行规则
作业启动管理器
系统计时器
定时作业接口,通过实现execute方法执行具体的任务
定时任务监听接口 通过实现此接口,实现对定时任务的各个环节做监听
监听调度器,统一管理监听
延迟任务
任务队列,任务双向链表
多层时间轮,常用于延时任务 时间轮是一种环形数据结构,由多个槽组成,每个槽中存放任务集合 一个单独的线程推进时间一槽一槽的移动,并执行槽中的任务
年匹配 考虑年数字太大,不适合boolean数组,单独使用LinkedHashSet匹配