我在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);
}
答案 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 - >>>抛出异常。