【发布时间】:2021-10-24 10:09:57
【问题描述】:
我的项目使用 Java Netty 框架来传输消息。该应用程序既是客户端又是服务器。当我们向远程服务器发送消息时,我们希望对这条消息进行一些处理。我在我的项目中使用ChannelOutboundHandler.write() 来达到这个目的:
public class MyOutBoundHandler extends ChannelOutboundHandlerAdapter{
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
process((ByteBuf) msg); // do some processing of this message
ctx.write(msg, promise);
}
}
我发现了一个问题,当process((ByteBuf) msg)方法抛出异常时,会导致阻塞,并且下一个方法ctx.write(msg, promise)不会被执行。那么如何使它们异步,因为我希望process((ByteBuf) msg) 不会影响将消息写入远程服务器。
【问题讨论】:
标签: java asynchronous netty