Package org.aoju.bus.cron
Class Repertoire
java.lang.Object
org.aoju.bus.cron.Repertoire
定时任务表
任务表将ID、表达式、任务一一对应,定时任务执行过程中,会周期性检查定时任务表中的所有任务表达式匹配情况,从而执行其对应的任务
任务的添加、移除使用读写锁保证线程安全性
- Since:
- Java 17+
- Version:
- 6.5.0
- Author:
- Kimi Liu
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd(String id, CronPattern pattern, Task task) 新增TaskvoidexecuteTaskIfMatch(Scheduler scheduler, long millis) 如果时间匹配则执行相应的Task,带读锁protected voidexecuteTaskIfMatchInternal(Scheduler scheduler, long millis) 如果时间匹配则执行相应的Task,无锁getIds()获取所有ID,返回不可变列表,即列表不可修改getPattern(int index) 获得指定位置的CronPatterngetPattern(String id) 获得指定id的CronPattern获取所有定时任务表达式,返回不可变列表,即列表不可修改getTask(int index) 获得指定位置的Task获得指定id的TaskgetTasks()获取所有定时任务,返回不可变列表,即列表不可修改booleanisEmpty()任务表是否为空boolean移除Taskintsize()任务表大小,加入的任务数toString()booleanupdatePattern(String id, CronPattern pattern) 更新某个Task的定时规则
-
Field Details
-
DEFAULT_CAPACITY
public static final int DEFAULT_CAPACITY- See Also:
-
-
Constructor Details
-
Repertoire
public Repertoire()构造 -
Repertoire
public Repertoire(int initialCapacity) 构造- Parameters:
initialCapacity- 容量,即预估的最大任务数
-
-
Method Details
-
add
新增Task- Parameters:
id- IDpattern-CronPatterntask-Task- Returns:
- this
-
getIds
获取所有ID,返回不可变列表,即列表不可修改- Returns:
- ID列表
-
getPatterns
获取所有定时任务表达式,返回不可变列表,即列表不可修改- Returns:
- 定时任务表达式列表
-
getTasks
获取所有定时任务,返回不可变列表,即列表不可修改- Returns:
- 定时任务列表
-
remove
移除Task- Parameters:
id- Task的ID- Returns:
- 是否成功移除,
false表示未找到对应ID的任务
-
updatePattern
更新某个Task的定时规则- Parameters:
id- Task的IDpattern- 新的表达式- Returns:
- 是否更新成功,如果id对应的规则不存在则不更新
-
getTask
获得指定位置的Task- Parameters:
index- 位置- Returns:
Task
-
getTask
获得指定id的Task- Parameters:
id- ID- Returns:
Task
-
getPattern
获得指定位置的CronPattern- Parameters:
index- 位置- Returns:
CronPattern
-
size
public int size()任务表大小,加入的任务数- Returns:
- 任务表大小, 加入的任务数
-
isEmpty
public boolean isEmpty()任务表是否为空- Returns:
- true为空
-
getPattern
获得指定id的CronPattern- Parameters:
id- ID- Returns:
CronPattern
-
executeTaskIfMatch
如果时间匹配则执行相应的Task,带读锁- Parameters:
scheduler-Schedulermillis- 时间毫秒
-
executeTaskIfMatchInternal
如果时间匹配则执行相应的Task,无锁- Parameters:
scheduler-Schedulermillis- 时间毫秒
-
toString
-