我有一个运行时间长的守护程序(Symfony2命令),该守护程序从Redis的工作队列中删除工作,并执行这些工作并使用orm写入数据库。

我注意到当工作人员有死亡的趋势时,是因为当工作人员空闲等待工作时,与MySQL的连接超时。

具体来说,我在日志中看到了这一点:MySQL Server已经消失了。

无论如何,我可以让学说自动重新连接吗?还是有某种方法可以手动捕获异常并重新连接该理论呢?

谢谢

最佳答案

我在我的symfony2 beanstalkd守护程序Command worker中使用了它:

$em = $this->getContainer()->get('doctrine')->getManager();
if ($em->getConnection()->ping() === false) {
    $em->getConnection()->close();
    $em->getConnection()->connect();
}

10-08 19:23