学说中的Mysql连接超时

时间:2010-11-07 12:03:12

标签: mysql doctrine

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

现在我正在使用mysql_ping($ conn)函数来检查连接id是否为timedout。如果连接超时,我再次使用mysql_connect()函数连接。现在我转向学说而不是本机PHP函数。在Doctorine中是否还有一个recconnect()函数?

2 个答案:

答案 0 :(得分:0)

我的批处理操作从未遇到过这个问题,但我认为您可能会在代码中的某些位置执行此类操作,您认为连接会有超时的风险:

// 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

答案 1 :(得分:0)

有一个自定义捆绑包,允许重新打开连接: https://github.com/facile-it/doctrine-mysql-come-back

您可以设置最大重试次数,也可以在Connection上手动调用方法重试!