0

複数の MySQL サーバーに接続し、アプリケーション レベルの負荷分散を提供するカスタム PHP MySQL ライブラリを作成しています。基本的に、一連のサーバー (すべてのサーバー) に接続しようとし、最初に接続に成功したサーバーが勝ちます。

問題は、私の人生では、mysqlまたはmysqliPHP ライブラリを使用して、非同期に接続する方法、つまりコールバックを使用する方法が見つからないことです。明らかに、接続の試行ごとにブロックしたくありません。そうしないと、ライブラリがタイムアウトになるまで待機してから、次のサーバーを試す必要があります。

次のように動作するはずです。

foreach($servers as $server) {
    mysql_async_connect($server, function($connection) {
        if($connection) {
            //Use this connection, successful
        }
    }
}

これはどのように可能ですか?MySQL に接続するための非同期 PHP ライブラリを作成した人はいますか? ありがとう。

4

1 に答える 1

2

あなたがやろうとしていることはうまくいきません - PHP は疑似マルチスレッドのみです。

これは、複数のユーザーが同じスクリプトにアクセスする場合、マルチスレッド マシンで実行されている場合、両方の要求が並行して実行されることを意味します。ただし、単一のスクリプト呼び出しから開始される個別のスレッドを指定することはできません。

あなたができることは、コールバックを使用するjavascriptでAJAXアプリケーションを作成し、サーバー側でphpを使用してデータを取得することです。

于 2012-05-30T06:53:57.873 に答える