0

私のphpスクリプトは、リモートゲートの応答を通常20秒ほど待ちます。これにより、Apache httpd スレッドが MySQL 接続を開いた状態でメモリ内に存在し、最終的に MaxClients 値を超えます。リモート ゲートが応答するまでアイドル状態のリソースを解放する方法。

1つの解決策は次のとおりです。1)リモートゲートリクエストを実行し、ユーザーを特定のURLテストに更新するページにリダイレクトします。2)nginx構成ファイルにそのURLのルールを書き込みます。特定のファイルが存在する場合は、apacheを実行してデータを表示します。ページを更新します。3) リモートゲート要求はデータをファイルに保存します

そのため、リモートゲートにリクエストを行うスクリプトからApacheをリンク解除し、可能な限り小さくすることができます。リモートリクエスト中は、サーバーはそのスクリプトのみで使用され、nginx からの軽いリクエストです。

良い解決策かもしれませんが、このアプローチの欠点を知りたいです。そして、もっと良い方法があるかもしれません。

4

1 に答える 1

0

リモートゲートの応答を待っている間、MySQL 接続を閉じることができます。

mysql_close($link);

そして、応答を受け取ったら再度開きます。

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

リモートゲート応答の前または後にのみ MySQL 接続が必要な場合は、正しい位置で 1 回だけ MySQL 接続を確立することをお勧めします。

一般に、mysql_connect() は少し高価です。しかし、応答に必要な 20 秒と比較すると、これは間違いなく安価です。

于 2010-07-22T17:21:19.320 に答える