gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:34:24 27 4
gpt4 key购买 nike

我有一个长时间运行的作业,使用 Propel2 构建。但是,有时它会因臭名昭著的 mysql server has gone away 错误而崩溃。我想通过重新连接到服务器来从这个错误中恢复过来,也许等几秒钟之后。有谁知道如何在连接丢失后强制 Propel 重新连接?我没有从 Propel 中找到如何执行此操作的任何线索。或 PDO API。

最佳答案

我在结合 laravel 队列时遇到了这个问题。 queue:work守护进程是进程,超时后不会自行重连。也尝试了持久连接,但没有帮助。

我现在解决这个问题的方法有点特定于队列/laravel,但也可能会帮助您找到解决方案。

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

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

然后 Propel 完成的新请求将创建一个新连接(尽管 worker 处理的每个新作业都会发生这种情况)

你也许可以尝试/捕获你的查询,看看错误/异常是什么,当它是“mysql server has gone away”时触发断开连接并重试查询

关于php - 当 MySQL 服务器消失时 Propel2 重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36048775/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com