我有一个每分钟运行一次的cron作业。每隔一段时间,cron就会因错误而失败:
MySQL服务器已经消失
问题是执行此错误以下的所有查询,有时可能会产生不良结果。
那么如何检测错误已经发生并退出其余代码的执行?
或者任何关于如何解决错误的提示都会很棒。
答案 0 :(得分:1)
错误似乎是由连接到没有响应的服务器引起的,或者是您正在使用超时的持久连接。
您应该能够从客户端API获取某种错误代码,并捕获以查看连接是否仍然有效。
如果失败,您可以抛出异常,然后停止该程序。
$query_id = mysqli_query($conn_id, $query);
if(!$query_id )
{
// throw an exception
throw new DatabaseQueryException("An error occurred accessing the database.\nError: \n".mysqli_error($conn_id));
}
我在网站上使用的是
答案 1 :(得分:0)
快速解决方法是关闭持久的mysql连接。更好的解决方法是捕获该特定错误并调用重新连接(PDO::__construct
),直到获得具有实时连接的即时消息。我发现当服务器计算机进入睡眠状态或mysql连接超时为低时,我经常会收到此错误。