接口 OnceTaskListener
- 所有超级接口:
TaskListener
,io.netty.util.TimerTask
Timer 监听回调,只执行 1 次。
当exampletriggerUpdate
返回 true 时,才会执行onUpdate
方法。 默认情况下 triggerUpdate 返回值为 true,开发者可以通过控制 triggerUpdate 方法的返回值来决定是否执行 onUpdate 方法;
// 只执行一次,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
-
方法详细资料
-
run
- 指定者:
run
在接口中io.netty.util.TimerTask
- 抛出:
Exception
-
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)执行,否则使用该执行器来执行
-