我正在开发一个Symfony 3.1应用程序,该应用程序基本上将作业消息放入RabbitMQ队列中,并与监督员一起构建消耗RabbitMQ消息的一些进程,并执行在Symfony中管理的作业。消费者的工作是解码消息并创建一个新的注入相同的内核并执行一个Symfony命令,该命令具有读/写数据库操作。Mysql错误:Mysql服务器已经消失
这里开始了这个问题。通常,在同一时间,我通常会派生4个工作进程来使用这些消息。与此同时,所有的消费者只是使用不同的数据进行相同的数据库操作,所以基本上所有的进程都执行相同的Symfony RabbitMQ使用者。有时它可以毫无问题地工作,但有时MySQL会返回错误"MySQL server has gone away"
,并且通常为了解决这个问题,我必须重新启动supervisor服务,以便工作进程终止并重新生成。通常在重新启动后,它可以正常工作几个小时,但它的确是不可预测的模式。
这不是MySQL连接超时,因为我确定它们是小型操作,我增加了MySQL的connect_timeout
。基本上,我也将wait_timeout
增加到2天,但这并不能解决问题。