RejectedExecutionHandlers设计分析

RejectedExecutionHandlers

netty中的执行器拒绝处理器RejectedExecutionHandler接口如下:


其有两种策略实现:

1. 默认策略

实现中是直接抛出异常。


2. 补偿策略

首先判断是否在eventLoop的io线程中。

a. 如果在其中则直接抛出异常,防止补偿阻塞IO线程正常执行任务。

b. 如果不是,则首先尝试wakeup执行器,尽量让其消费queue中的任务。然后阻塞等待指定时间后,调用offerTask将任务再次尝试添加到执行器中,成功则立刻返回,否则走入下一步抛出异常。


你可能感兴趣的:(RejectedExecutionHandlers设计分析)