如何判断特定请求是否所有可用的工作线程都忙

时间:2013-06-25 11:49:33

标签: udp netty

我有一个使用Netty(3.6.6-Final)的高速UDP服务器,但注意后端服务器可能需要1到10秒才能响应 - 我无法控制这些服务器,因此无法改善那里的延迟。

所发生的是所有处理程序工作线程都忙于等待响应,并且任何新请求必须等待处理,随着时间的推移,这个响应很晚才会响应。是否有可能发现给定的请求线程池已耗尽,以便尽早拦截请求并发出服务器忙响应?

1 个答案:

答案 0 :(得分:0)

我会使用配置了适当ExecutionHandler的{​​{1}},其中包含最大线程数和有界任务队列。通过选择不同的ThreadPoolExecutor策略,您可以捕获RejectedExecutionHandler以“服务器忙”来回答,或者使用“调用者运行策略”,在这种情况下,IO工作线程将执行任务并且创建一个推回(但这是你想要避免的)。

无论哪种方式,具有有限容量的执行处理程序都是前进的方向。