リモートプロセスが停止しても、ソケットは ESTABLISHED 状態のままです。

リモートプロセスが停止しても、ソケットは ESTABLISHED 状態のままです。

クライアントとサーバー間でcelery-configを実行しています。rabbitmqクライアントプロセスはサーバーのポート5672で接続を開きます。netstat -npサーバーでこれを使ってソケットが設定されたと報告したため確認しました。

クライアントのプロセスが中断され、存在しなくなりました。ただし、netstat -np接続が確立されていると表示されます。また、クライアントで実行して、netstat -npそのポートのサーバーに接続するプロセスがないことを確認しました。

ソケットがESTABLISHED状態に保たれるのはなぜですか?

ベストアンサー1

AMQP必要クライアントが接続を正しく閉じないと(長期実行ジョブの場合)、接続のサーバー側は開いたままになります。もっと読むこの投稿

これらの接続を手動で閉じたり、rabbitmqctlcron操作でこれを行うスクリプトを作成したりできますが、どちらもアプリケーションレベルの問題に対する非常に見苦しい外部アプローチです。

可能であれば開いてください心拍数そして、タイムアウトを既知の最長処理タスクより15〜20%長く設定してください。これにより、ハートビートタイムアウト後に「死んだ」接続がリサイクルされますが、長時間使用していたクライアントの接続も失われるので注意してください。

詳しくはこちら心拍数そしてウサギMQCTL(他のセクションを参照してください)。

おすすめ記事