我在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);
}
试试这个:
$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