如何缩短MySQL Connect Time Out - Failover Scenario

时间:2015-04-08 00:54:00

标签: php wordpress

我在Wordpress插件中有一个故障转移场景,如果生产者脚本脱机,我的Web服务器上的PHP脚本会尝试连接到备份数据库。

目前,后备似乎需要长达60秒。这是PHP的默认值吗?如何将时间设置为10秒钟?

这是脚本的相关部分......

  try
        {
            $DBblue = new \PDO('mysql:host='.$samhost.';'.'dbname='.$DBblue, $samuser, $sampass);
            $DBgreen = new \PDO('mysql:host='.$samhost.';'.'dbname='.$DBgreen, $samuser, $sampass);
        }
        catch (\PDOException $pde)
        {
            // Fallback Database connection
            $althost = get_option('fallback_host');
            $altuser = get_option('fallback_user');
            $altpass = get_option('fallback_password');
            $DBblue = new \PDO('mysql:host='.$althost.';'.'dbname='.$DBblue, $altuser, $altpass);
            $DBgreen = new \PDO('mysql:host='.$althost.';'.'dbname='.$DBgreen, $altuser, $altpass);
        }

1 个答案:

答案 0 :(得分:0)

试试这个:

$DBblue = new \PDO('mysql:host='.$samhost.';'.'dbname='.$DBblue, $samuser, $sampass, array(
    PDO::ATTR_TIMEOUT => "10",
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
 $DBgreen = new \PDO('mysql:host='.$samhost.';'.'dbname='.$DBgreen, $samuser, $sampass, array(
    PDO::ATTR_TIMEOUT => "10",
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));

PDO :: ATTR_TIMEOUT => “10” - >>>将超时设置为10秒。

PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION - >>>抛出异常。

更多信息:http://php.net/manual/en/pdo.setattribute.php

相关问题