2017-05-31 148 views
0

我正在开发一个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天,但这并不能解决问题。

回答

0

它可能是一些这样的问题。

  1. 最大数据包大小可以从配置max_allowed_pa​​cket的max_allowed_packet

  2. 增加它,也可以是超时的问题,因为你开的PHP的过程,它永远不会结束,你可以实现一些try catch块,而磨片有mysql错误创建新的mysql连接。

0

我们在使用应用程序时遇到了类似的问题。这个错误可能有各种原因。

相关问题