Class MultipleTimeTaskImpl
java.lang.Object
cool.scx.scheduling.MultipleTimeTaskImpl
- All Implemented Interfaces:
MultipleTimeTask,ScheduleTask<MultipleTimeTask>
多次执行的任务
- Version:
- 0.0.1
- Author:
- scx567888
-
Nested Class Summary
Nested classes/interfaces inherited from interface cool.scx.scheduling.MultipleTimeTask
MultipleTimeTask.Type -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconcurrent(boolean concurrentExecution) 是否运行并发执行 运行并发执行的时候 当到达规定时间时 无论上一次任务是否结束 都会开启下一次任务executor(ScheduledExecutorService executor) 执行器 默认会使用单例的 ScxScheduler 不建议自行设置expirationPolicy(ExpirationPolicy expirationPolicy) 过期策略maxRunCount(long maxRunCount) 最大运行次数 (此参数不受并发影响) 注意 当 并行(concurrent) 设置为 false 的时候 也可以在任务内部 取消 如下start()启动任务task(Consumer<ScheduleStatus> task) 任务type(MultipleTimeTask.Type type) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface cool.scx.scheduling.ScheduleTask
start
-
Constructor Details
-
MultipleTimeTaskImpl
public MultipleTimeTaskImpl()
-
-
Method Details
-
startTime
- Specified by:
startTimein interfaceMultipleTimeTask
-
startTime
- Specified by:
startTimein interfaceMultipleTimeTask
-
delay
- Specified by:
delayin interfaceMultipleTimeTask
-
type
- Specified by:
typein interfaceMultipleTimeTask
-
concurrent
Description copied from interface:ScheduleTask是否运行并发执行 运行并发执行的时候 当到达规定时间时 无论上一次任务是否结束 都会开启下一次任务- Specified by:
concurrentin interfaceScheduleTask<MultipleTimeTask>- Parameters:
concurrentExecution- 并发执行- Returns:
- self
-
maxRunCount
Description copied from interface:ScheduleTask最大运行次数 (此参数不受并发影响) 注意 当 并行(concurrent) 设置为 false 的时候 也可以在任务内部 取消 如下
但是此方式在 允许并发时并不准确 runCount 计数会因为多个线程同时运行累加从而跳过判断条件 所以如果需要 限制最大运行次数 推荐使用此参数ScxScheduling .fixedRate() .delay(Duration.ofMillis(1)) .concurrent(false) .start(c -> { if (c.runCount() > 10){ c.cancel(); } System.err.println(" runCount : " + c.runCount()); });- Specified by:
maxRunCountin interfaceScheduleTask<MultipleTimeTask>- Parameters:
maxRunCount- 最大运行次数- Returns:
- self
-
expirationPolicy
Description copied from interface:ScheduleTask过期策略- Specified by:
expirationPolicyin interfaceScheduleTask<MultipleTimeTask>- Parameters:
expirationPolicy- a- Returns:
- a
-
executor
Description copied from interface:ScheduleTask执行器 默认会使用单例的 ScxScheduler 不建议自行设置- Specified by:
executorin interfaceScheduleTask<MultipleTimeTask>- Parameters:
executor- 执行器- Returns:
- self
-
task
Description copied from interface:ScheduleTask任务- Specified by:
taskin interfaceScheduleTask<MultipleTimeTask>- Parameters:
task- 任务- Returns:
- self
-
start
Description copied from interface:ScheduleTask启动任务- Specified by:
startin interfaceScheduleTask<MultipleTimeTask>- Returns:
- 调度状态
-