MySQL には、最大接続数max_user_connectionsを強制する機能があります。
PHP(および他の言語)から接続する場合、その数を超えると、接続の最大数を超えたことを示すエラーで接続が失敗することを理解しています。正しい?
私の好みは、代わりに、接続が利用可能になるまで(タイムアウト制限まで)接続呼び出しを待機させることです。ただし、MySQL のドキュメントを読んだり Web を検索したりしても、これを行う方法を特定できませんでした。
私の懸念は、Web アプリへのトラフィックが殺到し、多数の同時 MySQL 接続試行が発生した場合、一部のユーザー スクリプトがエラーで終了することです。当然のことながら、特定の回数まで再接続を試行するように呼び出しコードを変更することもできますが、すべての「接続」呼び出しをラップするのではなく、これを処理するように接続試行自体を変更できれば、はるかにクリーンになります。ループ。さらに、ループは実際の FIFO キューにはなりません。これは、個々の呼び出しスレッドが少しの間待機してから再試行し、接続が得られるかどうかが、その特定の瞬間に接続が利用可能かどうかに依存するためです。その後、再び待機し、待機中に接続が開き、「さらに戻って」別のスレッドがそれを取得する可能性があります。
では、PHP API のいずれかを使用して MySQL に接続する場合、「接続が利用可能になるまで待機する」方法で接続を試行する方法はありますか?