原因
yii 开启守护队列任务的时候,yii 链接数据路的单例模式会一直运行当前链接,数据库链接会有出现超时 比如:
General error: 2006 MySQL server has gone away
The SQL being executed was: SELECT * WHERE (`uid` = 1) AND (`end_at` = 0) AND (`created_at` >= 1637895651) ORDER BY `id` DESC LIMIT 1
解决方案:
捕捉错误的时候发现如果是超时链接则断开链接,重新抛出错误,ack应答失败重新,当再次消费的时候框架会自动重新链接数据库
需要注意的是上面虽然断开连接,但是同时也要注意队列失败是重试还是删除