当MySQL服务器消失时,Propel2重新连接

时间:2016-03-16 23:15:37

标签: php mysql pdo propel2

我有一个长期工作,使用Propel2构建。但是,有时它会因臭名昭着的mysql server has gone away错误而崩溃。我想通过重新连接到服务器来恢复此错误,可能在等待几秒钟之后。有没有人知道如何在连接丢失后强制Propel重新连接?我没有从PropelPDO API找到任何线索。

1 个答案:

答案 0 :(得分:3)

在与laravel队列结合使用时遇到了这个问题。队列:工作守护程序是进程,在超时发生后,它不会自行重新连接。尝试持久连接,这没有帮助。

我现在解决这个问题的方法是一个特定的队列/ laravel,但也可以帮助你找到解决方案。

我现在强制每个由工作人员处理的作业,通过使用Queue :: before()事件断开推进连接。

$manager = Propel::getConnectionManager('default');
$manager->closeConnections();

Propel创建的新请求将创建一个新连接(这将发生在工作人员处理的每个新工作中)

您也许可以尝试/捕获您的查询,查看错误/异常是什么,以及它的mysql服务器什么时候消失了#39;触发断开连接并重试查询