messageReceived()
で受信されている間に、My NettyチャネルハンドラchannelClosed()
がブロックされます。
私はメッセージを同期するためにOrderedMemoryAwareThreadPoolExecutor
を使用しました。
channelClosed()
は優先度の低いスレッドで処理されますか?Netty単純なチャネルハンドラの切断がブロックされる
スレッドの優先度については、nettyで教えてください。 あなたが
objChannelPipeline.addLast("ipFilter", objCustomIPFilterHandler);
objChannelPipeline.addLast("idleHandler", new IdleStateHandler(timer,5,5, 0));
objChannelPipeline.addLast("loggingHandler", objLoggingHandler);
objChannelPipeline.addLast("frameDecoder",
new DelimiterBasedFrameDecoder(Integer.MAX_VALUE, false, ChannelBuffers.copiedBuffer("\n\n".getBytes(CharsetUtil.UTF_8))));
objChannelPipeline.addLast("messageDecoder", new CustomMessageDecoder());
objChannelPipeline.addLast("groupOrder", executionHandler);
objChannelPipeline.addLast("ProtocolMultiplexer", CustomHandler);
シナリオは1つのチャネルが閉じていると同時に、別のチャネルが接続され、メッセージがそのチャネルを通じて受信されます。 – user2067201
@ user2067201その場合、 'channelClose()'イベントの前に、 'channelReceived'イベントを別のチャンネルで起きているように呼び出すこともできます。しかし、イベントに関連するスレッドの優先順位はありませんので、どのような順序でも発生する可能性があります。 –
あなたの返信ありがとうございます。私は最初にチャンネル閉鎖イベントを持っていますが、いつmessageReceived()m – user2067201