3

Netty UptimeClient を変更する予定です (こちらを参照)。元のバージョンはエンドレスに実行するように設計されています。切断された場合はホストに再接続します。UptimeClient.java に「terminate」メソッドを追加したいと思います。このメソッドは、外部スレッドから再接続プロセスを切断または停止し、Netty を適切にシャットダウンしてから戻ります。

再接続プロセスのためにクライアント チャネルが変更される可能性があるため、'bootstrap.connect()' によって返されたすべてのチャネルを ChannelGroup に保持し、Netty のリソースを解放する前にグループを使用して 'close' を呼び出しても安全でしょうか?

「終了」メソッドをどのように実装しますか? (編集:3.7.0を使用)

4

1 に答える 1

5

Nety 4.0 では、すべてのチャネルを管理する をshutdownGracefully(...)呼び出すだけです。EventLoopGroupその後、既存のすべてのチャネルが自動的に閉じられ、再接続の試行は拒否されます。これで問題が解決しない場合は、お気軽に問題を報告してください。

Netty 3.x を使用している場合、残念ながら、これを自動的に行うメカニズムはありません。イベントループは、管理するチャネルができるまで終了しないため、すべてのチャネルを確実に閉じる必要があります。詳細については、NioClientChannelFactory(「スレッドのライフサイクルと正常なシャットダウン」)を参照してください。

于 2013-11-04T08:23:19.073 に答える