我正在使用PDO Persistent Connection运行无休止的PHP脚本,如下所示:
$conn=new PDO(
'mysql:host=127.0.0.1','user','pass', array(PDO::ATTR_PERSISTENT => true)
);
Run Code Online (Sandbox Code Playgroud)
mySQL wait_timeout变量设置为28800,我将脚本空闲了12个小时以进行测试; 并自动删除连接,因此我假设该PDO::ATTR_PERSISTENT属性被系统变量取代wait_timeout.
所以我想知道是否有一个设置或另一个PHP方法来保持连接呼吸,只要PHP脚本正在运行以及这是否是一个好习惯.
我的计划B将每60分钟执行一次无资源的mySQL查询来重置时钟.
操作系统:4GB RAM VPS Debian 64位SSD
我建议你用另一种方法来处理这种情况.每当您需要在持久的脚本中运行查询时,请确保存在连接.否则重新连接.
try {
echo "Testing connection...\n";
$old_errlevel = error_reporting(0);
self::$pdo->query("SELECT 1");
} catch (PDOException $e) {
echo "Connection failed, reinitializing...\n";
self::init();
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到完整的类示例.我还建议您在知道长时间不使用它时明确关闭脚本中的连接.
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |