public class Scheduler extends Object
调度器启动流程:
启动Timer - 启动Launcher - 启动Executor
调度器关闭流程:
关闭Timer - 关闭所有运行中的Launcher - 关闭所有运行中的Executor
其中:
Launcher:定时器每分钟调用一次(如果isMatchSecond()为true每秒调用一次), 负责检查Repertoire是否有匹配到此时间运行的Task
Executor:Launcher匹配成功后,触发Executor执行具体的作业,执行完毕销毁
| Modifier and Type | Field and Description |
|---|---|
protected Configure |
config
定时任务配置
|
protected boolean |
daemon
是否为守护线程
|
protected TaskListenerManager |
listenerManager
监听管理器列表
|
protected Manager |
manager
执行管理器
|
protected Repertoire |
repertoire
定时任务表
|
protected Supervisor |
supervisor
启动管理器
|
protected ExecutorService |
threadExecutor
线程池
|
| Constructor and Description |
|---|
Scheduler() |
| Modifier and Type | Method and Description |
|---|---|
Scheduler |
addListener(TaskListener listener)
增加监听器
|
Scheduler |
clear()
清空任务表
|
Scheduler |
deschedule(String id)
移除Task
|
boolean |
descheduleWithStatus(String id)
移除Task,并返回是否移除成功
|
CronPattern |
getPattern(String id)
获得指定id的
CronPattern |
Task |
getTask(String id)
获得指定id的
Task |
Repertoire |
getTaskTable()
获取定时任务表,注意此方法返回非复制对象,对返回对象的修改将影响已有定时任务
|
boolean |
isDaemon()
是否为守护线程
|
boolean |
isEmpty()
是否无任务
|
boolean |
isMatchSecond()
是否支持秒匹配
|
boolean |
isStarted() |
Scheduler |
removeListener(TaskListener listener)
移除监听器
|
Scheduler |
schedule(org.aoju.bus.setting.magic.PopSetting cronSetting)
批量加入配置文件中的定时任务
配置文件格式为: xxx.xxx.xxx.Class.method = * * * * *
|
Scheduler |
schedule(String id,
CronPattern pattern,
Task task)
新增Task
|
String |
schedule(String pattern,
Runnable task)
新增Task,使用随机UUID
|
Scheduler |
schedule(String id,
String pattern,
Runnable task)
新增Task
|
Scheduler |
schedule(String id,
String pattern,
Task task)
新增Task
|
String |
schedule(String pattern,
Task task)
新增Task,使用随机UUID
|
Scheduler |
setDaemon(boolean on)
设置是否为守护线程
如果为true,则在调用
stop()方法后执行的定时任务立即结束,否则等待执行完毕才结束 默认非守护线程 |
Scheduler |
setMatchSecond(boolean isMatchSecond)
设置是否支持秒匹配,默认不使用
|
Scheduler |
setTimeZone(TimeZone timeZone)
设置时区
|
int |
size()
当前任务数
|
Scheduler |
start()
启动
|
Scheduler |
start(boolean isDeamon)
启动
|
Scheduler |
stop()
停止定时任务
此方法调用后会将定时器进程立即结束,如果为守护线程模式,则正在执行的作业也会自动结束,否则作业线程将在执行完成后结束
此方法并不会清除任务表中的任务,请调用
clear() 方法清空任务或者使用stop(boolean)方法可选是否清空 |
Scheduler |
stop(boolean clearTasks)
停止定时任务
此方法调用后会将定时器进程立即结束,如果为守护线程模式,则正在执行的作业也会自动结束,否则作业线程将在执行完成后结束
|
Scheduler |
updatePattern(String id,
CronPattern pattern)
更新Task执行的时间规则
|
protected boolean daemon
protected Supervisor supervisor
protected Manager manager
protected ExecutorService threadExecutor
protected Configure config
protected Repertoire repertoire
protected TaskListenerManager listenerManager
public Scheduler setTimeZone(TimeZone timeZone)
timeZone - 时区public boolean isDaemon()
public Scheduler setDaemon(boolean on) throws org.aoju.bus.core.lang.exception.InstrumentException
stop()方法后执行的定时任务立即结束,否则等待执行完毕才结束 默认非守护线程on - true为守护线程,否则非守护线程org.aoju.bus.core.lang.exception.InstrumentException - 定时任务已经启动抛出此异常public boolean isMatchSecond()
true使用,false不使用public Scheduler setMatchSecond(boolean isMatchSecond)
isMatchSecond - true支持,false不支持public Scheduler addListener(TaskListener listener)
listener - TaskListenerpublic Scheduler removeListener(TaskListener listener)
listener - TaskListenerpublic Scheduler schedule(org.aoju.bus.setting.magic.PopSetting cronSetting)
cronSetting - 定时任务设置文件public String schedule(String pattern, Runnable task)
pattern - CronPattern对应的String表达式task - Runnablepublic String schedule(String pattern, Task task)
pattern - CronPattern对应的String表达式task - Taskpublic Scheduler schedule(String id, String pattern, Runnable task)
id - ID,为每一个Task定义一个IDpattern - CronPattern对应的String表达式task - Runnablepublic Scheduler schedule(String id, String pattern, Task task)
id - ID,为每一个Task定义一个IDpattern - CronPattern对应的String表达式task - Taskpublic Scheduler schedule(String id, CronPattern pattern, Task task)
id - ID,为每一个Task定义一个IDpattern - CronPatterntask - Taskpublic boolean descheduleWithStatus(String id)
id - Task的IDfalse表示未找到对应ID的任务public Scheduler updatePattern(String id, CronPattern pattern)
id - Task的IDpattern - CronPatternpublic Repertoire getTaskTable()
Repertoirepublic CronPattern getPattern(String id)
CronPatternid - IDCronPatternpublic boolean isEmpty()
public int size()
public Scheduler clear()
public boolean isStarted()
public Scheduler start(boolean isDeamon)
isDeamon - 是否以守护线程方式启动,如果为true,则在调用stop()方法后执行的定时任务立即结束,否则等待执行完毕才结束public Scheduler start()
public Scheduler stop()
clear() 方法清空任务或者使用stop(boolean)方法可选是否清空public Scheduler stop(boolean clearTasks)
clearTasks - 标记Copyright © 2021. All rights reserved.