zoukankan      html  css  js  c++  java
  • php yii2 使用命令行模式开启脚本 报错 :Error while sending QUERY packet. PID=xxx

    背景:使用Yii2命令行模式开启脚本监控rabbitmq队列(或使用nohup &命令后台监控接口),当队列有订单信息,执行查询,更新操作(相当于PHP文件写个查询,更新,使用命令行启动)

    问题:一开始监控没有问题,每过一段时间会抛出错误

    > Error while sending QUERY packet. PID=25370. The SQL being executed was: 一句sql语句(此sql直接执行没有错误).
    

    解决方案,由于等待消息队列是一个长连接,而等待回调前有个数据库连接,数据库的wait_timeout=28800,所以只要下一条消息离上一条消息超过8小时,就会出现这个错误,把wait_timeout设置成10,并且捕获异常,发现真实的报错是 MySQL server has gone away ,
    所以只要在把等待回调前那次数据库连接主动close掉就可以解决问题

    yii 关闭数据库链接方法

    Yii::$app->db->close();
  • 相关阅读:
    Dapper 基础用法
    测试的分类
    Python
    MySQL数据库的增删改查
    Python面向对象之
    Python面向对象之
    Python
    HTML5/CSS3/JS笔记
    Python-Flask框架之
    Python进程与线程
  • 原文地址:https://www.cnblogs.com/-mrl/p/9582817.html
Copyright © 2011-2022 走看看