netty 心跳 handler 的时间处理

用户指定的超时时间 readerIdleTimeNanos

上次操作时间 lastReadTime

 nextDelay = readerIdleTimeNanos - (currTime - lastReadTime)

可以看出 nextDelay 表示的是离超时事件的发生还有多久

如果 nextDelay <= 0 说明已经发生超时

这时便会产生相应事件传递给下一个handler

 若 nextDelay > 0 则还未发生超时

那么便提交一个延时为nextDelay的任务

待nextDelay时间过后再考察是否超时

(若nextDelay时间段内无操作,则下次执行便会产生超时事件,若期间发生了操作,则会重新计算nextDelay,重新判断)

posted @ 2022-08-14 18:03  向金华  阅读(60)  评论(0)    收藏  举报