我是Netty的新手,我来自每个连接世界的一个线程。我正在试图找出实现超时等待通道响应的最佳方法。在阻塞世界中,您将数据包发送到远程对等体,并且您将在线程中等待响应。如果响应未及时到来,则会抛出异常或......等等。
实现此目的的一种方法(可能不符合Netty方式)是在发送请求时创建计时器,如果及时得到响应则取消计时器,否则抛出异常。 / p>
非常感谢任何能帮助我朝正确方向前进的帮助!
答案 0 :(得分:1)
在做了更多的研究之后,我能想出解决这个问题的最好方法是在频道事件循环上安排一个具有所需超时的Runnable。如果响应在超时之前返回,我可以取消ScheduledFuture,否则我将得到我正在寻找的响应超时。与IdleStateHandler相比,我现在可以为每个请求发送一个ScheduledFuture,并能够跟踪我的响应。