接口 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
  • 方法概要

    修饰符和类型
    方法
    说明
    default Executor
    执行 onUpdate 的执行器
    default boolean
    是否活跃
    default void
    异常回调
    void
    Timer 监听回调
    default boolean
    是否触发 onUpdate 监听回调方法
  • 方法详细资料

    • isActive

      default boolean isActive()
      是否活跃
      返回:
      false 表示不活跃,会从监听列表中移除当前 TimerListener
    • triggerUpdate

      default boolean triggerUpdate()
      是否触发 onUpdate 监听回调方法
      返回:
      true 执行 onUpdate 方法
    • onUpdate

      void onUpdate()
      Timer 监听回调
    • onException

      default void onException(Throwable e)
      异常回调
           当 triggerUpdate 或 onUpdate 方法抛出异常时,将会传递到这里
       
      参数:
      e - e
    • getExecutor

      default Executor getExecutor()
      执行 onUpdate 的执行器
           如果返回 null 将在 HashedWheelTimer 中执行。
      
           如果有耗时的任务,比如涉及一些 io 操作的,建议指定执行器来执行当前回调(onUpdate 方法),以避免阻塞其他任务。
       
      示例
      
           default Executor getExecutor() {
               // 耗时任务,指定一个执行器来消费当前 onUpdate
               return TaskKit.getCacheExecutor();
           }
       
       
      返回:
      当返回值为 null 时,将使用当前线程(默认 HashedWheelTimer)执行,否则使用该执行器来执行