gpt4 book ai didi

http - Netty 中的同步 HTTP 调用

转载 作者:可可西里 更新时间:2023-11-01 16:28:54 26 4
gpt4 key购买 nike

我的应用程序收到一个 HTTP 请求,在管道的中间,调用另一台服务器以获取支持信息。在该响应返回之前,初始 HTTP 请求无法继续通过管道。我不能从 I/O 线程使用 awaitUninterruptability(),所以进行这些调用的最佳方法是什么,这样我就不会阻塞 Netty 的事件循环,而是将客户端的管道搁置直到我的调用返回并告诉管道继续?

最佳答案

Ryan 这听起来不是个好主意..

我认为你最好使用类似的东西:

public class HttpHandler extends SimpleChannelUpstreamHandler{

@Override
public void messageReceived(final ChannelHandlerContext ctx, final MessageEvent e) throws Exception {
otherChannel.write(yourRequet).addListener(new ChannelFutureListener() {

public void operationComplete(ChannelFuture future) throws Exception {

// once the write is done we can continue in the pipeline
ctx.sendUpstream(e);
}
});

// the event stops here to get processed

}

}

如果您需要等待响应,那么您将需要在另一个 SimpleChannelUpstreamHandler 中处理它。但我想你明白了..

关于http - Netty 中的同步 HTTP 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10358938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com