接口 OnceTaskListener

所有超级接口:
TaskListener, io.netty.util.TimerTask

public interface OnceTaskListener extends io.netty.util.TimerTask, TaskListener
Timer 监听回调,只执行 1 次。
triggerUpdate  返回 true 时,才会执行 onUpdate 方法。

     默认情况下 triggerUpdate 返回值为 true,开发者可以通过控制 triggerUpdate 方法的返回值来决定是否执行 onUpdate 方法;
 
example

     // 只执行一次,500、800 milliseconds 后
     TaskKit.runOnce(() -> log.info("500 delayMilliseconds"), 500);
     TaskKit.runOnce(() -> log.info("800 delayMilliseconds"), 800);

     // 只执行一次,10 秒后执行
     TaskKit.runOnce(new YourOnceTaskListener(), 10, TimeUnit.SECONDS);

     // 只执行一次,1500 Milliseconds 后执行,当 theTriggerUpdate 为 true 时,才执行 onUpdate
     boolean theTriggerUpdate = RandomKit.randomBoolean();
     TaskKit.runOnce(new OnceTaskListener() {
         @Override
         public void onUpdate() {
             log.info("1500 delayMilliseconds");
         }

         @Override
         public boolean triggerUpdate() {
             return theTriggerUpdate;
         }

     }, 1500, TimeUnit.MILLISECONDS);
 
 
从以下版本开始:
21
作者:
渔民小镇
另请参阅:
日期:
2023-12-06
  • 方法概要

    修饰符和类型
    方法
    说明
    default Executor
    执行 onUpdate 的执行器
    default void
    异常回调
    void
    Timer 监听回调
    default void
    run(io.netty.util.Timeout timeout)
     
    default boolean
    是否触发 onUpdate 监听回调方法
  • 方法详细资料

    • run

      default void run(io.netty.util.Timeout timeout) throws Exception
      指定者:
      run 在接口中 io.netty.util.TimerTask
      抛出:
      Exception
    • 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)执行,否则使用该执行器来执行