public class Scheduler extends Object
调度器启动流程:
启动Timer =》 启动TaskLauncher =》 启动TaskExecutor
调度器关闭流程:
关闭Timer =》 关闭所有运行中的TaskLauncher =》 关闭所有运行中的TaskExecutor
其中:
TaskLauncher:定时器每分钟调用一次(如果isMatchSecond()为true每秒调用一次), 负责检查TaskTable是否有匹配到此时间运行的Task
TaskExecutor:TaskLauncher匹配成功后,触发TaskExecutor执行具体的作业,执行完毕销毁
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
daemon
是否为守护线程
|
protected ExecutorManager |
executorManager
执行器管理器
|
protected LauncherManager |
launcherManager
启动器管理器
|
protected TaskListenerManager |
listenerManager
监听管理器列表
|
protected boolean |
matchSecond
是否支持秒匹配
|
protected TaskTable |
taskTable
定时任务表
|
protected ExecutorService |
threadExecutor
线程池
|
| Constructor and Description |
|---|
Scheduler() |
| Modifier and Type | Method and Description |
|---|---|
Scheduler |
addListener(TaskListener listener)
增加监听器
|
Scheduler |
clear()
清空任务表
|
Scheduler |
deschedule(String id)
移除Task
|
CronPattern |
getPattern(String id)
获得指定id的
CronPattern |
Task |
getTask(String id)
获得指定id的
Task |
TimeZone |
getTimeZone()
获得时区,默认为
TimeZone.getDefault() |
boolean |
isDeamon()
是否为守护线程
|
boolean |
isEmpty()
是否无任务
|
boolean |
isMatchSecond()
是否支持秒匹配
|
boolean |
isStarted() |
Scheduler |
removeListener(TaskListener listener)
移除监听器
|
Scheduler |
schedule(Setting 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 matchSecond
protected boolean daemon
protected TaskTable taskTable
protected LauncherManager launcherManager
protected ExecutorManager executorManager
protected TaskListenerManager listenerManager
protected ExecutorService threadExecutor
public TimeZone getTimeZone()
TimeZone.getDefault()public Scheduler setTimeZone(TimeZone timezone)
timezone - 时区public Scheduler setDaemon(boolean on) throws InstrumentException
stop()方法后执行的定时任务立即结束,否则等待执行完毕才结束 默认非守护线程on - true为守护线程,否则非守护线程InstrumentException - 定时任务已经启动抛出此异常public boolean isDeamon()
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(Setting 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 Scheduler updatePattern(String id, CronPattern pattern)
id - Task的IDpattern - CronPatternpublic 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 © 2020. All rights reserved.