【发布时间】:2012-05-08 16:36:32
【问题描述】:
我的应用收到一个 HTTP 请求,在管道的中间,调用另一个服务器以获取支持信息。在响应返回之前,初始 HTTP 请求无法继续通过管道。我不能在 I/O 线程中使用 awaitUninterruptability(),那么进行这些调用的最佳方法是什么,这样我就不会阻止 Netty 的事件循环,而是将客户端的管道暂停,直到我的调用返回并且我告诉管道继续?
【问题讨论】:
-
在摆弄了一段时间之后,我认为我在正确的轨道上。我现在正在做的是将同一管道处理程序的另一个实例添加到堆栈中,紧跟在当前处理程序之后,并传入响应处理程序。然后向上游发送。然后我检查该响应处理程序是否已完成(处理程序中的自定义方法),如果没有,则将处理程序的另一个实例添加到管道中,依此类推。本质上是创建一个处理程序循环,当响应返回时将“中断”。我现在唯一的问题是我在响应返回之前溢出了处理程序上的堆栈......
标签: http netty event-driven