我有一个PHP Thruway工作者的Crossbar.io服务器。最近,我开始收到以下错误。现在大约每天发生一次:
2016-04-17T21:08:12+0000 [Router 9572] Unable to format event {'log_logger': <Logger 'crossbar.router.protocol.WampWebSocketServerProtocol'>, 'log_time': 1460927292.17918, 'log_source': None, 'log_format': 'Traceback (most recent call last):\n File "/usr/local/lib/python2.7/site-packages/autobahn/wamp/websocket.py", line 88, in onMessage\n for msg in self._serializer.unserialize(payload, isBinary):\n File "/usr/local/lib/python2.7/site-packages/autobahn/wamp/serializer.py", line 106, in unserialize\n raise ProtocolError("invalid serialization of WAMP message ({0})".format(e))\nProtocolError: invalid serialization of WAMP message (Expected object or value)\n'}: tuple index out of range
2016-04-17T21:08:15+0000 [Guest 9583] The connected has closed with reason: close
2016-04-17T21:08:19+0000 [Guest 9583] PHP Fatal error: Call to a member function call() on null in /var/www/html/pickupServer/vendor/voryx/thruway/src/Thruway/ClientSession.php on line 106
2016-04-17T21:08:19+0000 [Guest 9583] Fatal error: Call to a member function call() on null in /var/www/html/pickupServer/vendor/voryx/thruway/src/Thruway/ClientSession.php on line 106
2016-04-17T21:08:19+0000 [Controller 9565] Guest worker2 exited with error A process has ended with a probable error condition: process ended with exit code 255.有人知道如何防止这种情况发生吗?
如果worker失败了,我该如何自动重新启动它?
发布于 2016-06-03 06:49:27
我在linux中解决了这个问题,MONIT检查了crossbar-controler进程,并添加了以下代码行:
如果子进程<3,则重新启动
3是crossbar-controler在我的环境中拥有的子进程数。如果它们中的任何一个退出,那么crossbar会自动重启并通知我。您必须使用以下命令检查正在运行的子进程的数量:
sudo服务交叉开关状态。
这解决了错误退出工作者,但以重新启动纵横制控制器为代价。我确信这一定是一种解决问题的纵横交错的方式。理想的方法是尝试捕获php的所有可能的错误,以防止致命的worker退出。
谢谢
https://stackoverflow.com/questions/36685218
复制相似问题