0

netty 3.5.1 を使用して、1K を超えるクライアントが接続されたクライアント サーバー アプリケーションを管理する必要があります。サーバーを再起動してクライアントを切断すると、データベースに書き込まれた更新が失われることがあります。再起動/シャットダウンを実行するとき、次のように Netty コンポーネントをシャットダウンします。

  • サーバーチャネルのシャットダウン
  • すべてのクライアントを切断します (ChannelGroupFuture 経由)
  • ChannelPipeline で releaseExternalResources() を呼び出します
  • ChannelPipeline の一部である ExecutionHandler で releaseExternalResources() を呼び出します (手動で呼び出す必要がありますか?)

しかし、なぜ ExecutorUtil. terminate (ExecutionHandler によって呼び出される) は、渡された ExecutorService に対して shutdownNow を実行します。shutdownNowは、キュー内の既存のすべてのタスクを排出してそれらを返すためです。ExecutorUtil のため、タスクは実行されません。terminatevoid型です。ExecutorService でシャットダウンを呼び出して、完了を待つ方が適切ではないでしょうか?

4

1 に答える 1

0

それは良い提案です.私たちのイシュートラッカー[1]でそれについてイシューを開いていただけませんか?

[1]https://github.com/netty/netty/issues

于 2012-09-08T11:23:54.100 に答える