异步连接到 MySQL 服务器


Connect To MySQL Server Asynchronously

我正在编写一个自定义的PHP MySQL库,它将连接到多个MySQL服务器,并提供应用程序级负载平衡。基本上,它尝试连接到一系列服务器(所有服务器),第一个成功连接的人获胜。

问题是,对于我的一生,我看不到mysqlmysqli PHP 库可以说异步连接的方法,即使用回调。显然,我不想阻止每次连接尝试,否则库将不得不等待超时,然后尝试下一个服务器。

它应该像这样工作:

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

这怎么可能?有没有人编写过一个异步PHP库来连接到MySQL?谢谢。

你试图做的事情是行不通的 - PHP 只是伪多线程的。

这意味着,如果

多个用户访问同一脚本,则如果该脚本在多线程计算机上运行,则两个请求将并行执行。但是,不能指定从单个脚本调用启动的单独线程。

你可以做的是创建一个使用javascript的AJAX应用程序,它使用回调,在服务器端使用php来获取数据。