0

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

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

它应该像这样工作:

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

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

4

1 回答 1

2

你试图做的不会工作 - PHP 只是伪多线程。

这意味着如果多个用户访问同一个脚本,如果它在多线程机器上运行,则两个请求将并行执行。但是您不能指定从单个脚本调用开始的单独线程。

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

于 2012-05-30T06:53:57.873 回答