Mysql 连接超时

标签 mysql doctrine

我开发了一个应用程序,可以分批向不同的用户发送大量电子邮件。我在这个应用中遇到最多的问题就是mysql连接超时的问题。在批处理之间,当先前打开的连接中没有执行查询并且连接长时间保持空闲时,mysql 自己关闭连接。发送当前批处理后,当我再次尝试执行任何 sql 查询时,它给我 mysql 连接错误。

现在我正在使用 mysql_ping($conn) 函数来检查连接 ID 是否超时。如果连接超时,我会再次使用 mysql_connect() 函数连接。现在我转向 Doctrine 而不是本地 PHP 函数。 Doctorine 中是否也有 recconnect() 函数?

最佳答案

我的批处理操作从未遇到过这个问题,但我认为您可以在代码中您认为存在连接超时风险的地方执行类似的操作:

// Fetch current connection
$conn = Doctrine_Manager::connection();
if(!$conn) {
   // Open a new connection
   $conn = Doctrine_Manager::connection('mysql://username:password@localhost/whatever', 'connection 1');
}

http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/connections.html

关于Mysql 连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4117606/

相关文章:

php - SQL AVG 函数不考虑空单元格

Symfony 5 - 制作 :entity in custom folder?

doctrine - 使用 DQL 获取列计数或获取集合然后计数更好?

mysql - 使用 SQL,以一种高性能的方式仅替换大文本字段中的一个段落中的字符串(使用子字符串、定位和替换、正则表达式等)

mysql - 不等于 - MySQL 明确没有和组

c++ - MySQL C++ 连接器未解析的外部

php - Mysql MATCH AGAINST空字段给出所有结果

symfony - 如何限制 Doctrine2 中的 OneToMany/ManyToOne 关联深度/循环?

php - Windows 上 Symfony 5.0.1 控制台中已弃用的类警告

php - 尝试模拟 Doctrine 2 实体存储库时在 PHPUnit 中出现错误