我有一个运行时间长的守护程序(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();
}