接口 IntervalTaskListener
public interface IntervalTaskListener
调度任务监听,使用 HashedWheelTimer 来模拟 ScheduledExecutorService 调度。
当 isActive
返回 true 时,才会执行 triggerUpdate 和 onUpdate
方法
example
// 每分钟调用一次
TaskKit.runIntervalMinute(() -> log.info("tick 1 Minute"), 1);
// 每 2 分钟调用一次
TaskKit.runIntervalMinute(() -> log.info("tick 2 Minute"), 2);
// 每 2 秒调用一次
TaskKit.runInterval(() -> log.info("tick 2 Seconds"), 2, TimeUnit.SECONDS);
// 每 30 分钟调用一次
TaskKit.runInterval(() -> log.info("tick 30 Minute"), 30, TimeUnit.MINUTES);
- 作者:
- 渔民小镇
- 另请参阅:
- 日期:
- 2023-12-01
-
方法详细资料
-
isActive
default boolean isActive()是否活跃- 返回:
- false 表示不活跃,会从监听列表中移除当前 TimerListener
-
triggerUpdate
default boolean triggerUpdate()是否触发 onUpdate 监听回调方法- 返回:
- true 执行 onUpdate 方法
-
onUpdate
void onUpdate()Timer 监听回调 -
onException
异常回调当 triggerUpdate 或 onUpdate 方法抛出异常时,将会传递到这里
- 参数:
e
- e
-
getExecutor
执行 onUpdate 的执行器如果返回 null 将在 HashedWheelTimer 中执行。 如果有耗时的任务,比如涉及一些 io 操作的,建议指定执行器来执行当前回调(onUpdate 方法),以避免阻塞其他任务。
示例default Executor getExecutor() { // 耗时任务,指定一个执行器来消费当前 onUpdate return TaskKit.getCacheExecutor(); }
- 返回:
- 当返回值为 null 时,将使用当前线程(默认 HashedWheelTimer)执行,否则使用该执行器来执行
-