1

httpノードのネイティブ モジュールのみを使用してサーバーを構築するという宿題があります。サーバーを過負荷から保護しようとしているので、各リクエストはハッシュされて保存されます。特定のリクエストが高い数、たとえば 500 に達した場合、私は を呼び出しますsocket.destroy()

間隔 (1 分) ごとに、ハッシュ テーブルを再起動します。問題は、以前は死んでいたソケットを実行すると、再び機能するようになることです。私が各間隔で行う唯一のことはrequests = {}、接続とは関係ありません。

接続が再び有効になった理由はありますか? よりも使用するのに適した機能はありdestroy()ますか?

ありがとう

4

1 に答える 1

1

ソケットを破棄しても、クライアントが新しいソケットで要求を再試行するのを必ずしも停止するわけではありません。

OK代わりに、ステータスコード以外のコードだけで最小限の応答を試みることができます。

if (requests[path] >= 500) {
    res.statusCode = 503;
    res.end();
}

そして、503ステータスコードについて:

サーバーの一時的な過負荷またはメンテナンスのため、サーバーは現在リクエストを処理できません。

于 2012-12-16T22:37:03.533 に答える