0

PHP Thruway ワーカーを備えた Crossbar.io サーバーがあります。最近、次のエラーが発生し始めました。現在、1日1回程度発生しています。

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.

これを防ぐために暑いことを知っている人はいますか?

この場合のようにワーカーが失敗した場合、ワーカーを自動的に再起動するにはどうすればよいですか?

4

1 に答える 1

0

Linux で MONIT チェック クロスバー コントローラー プロセスと次の行を追加して解決しました。

子供が 3 人未満の場合は、再起動します

3 は、私の環境で crossbar-controler が持つ子プロセスの数です。それらのいずれかが終了すると、クロスバーが再起動して通知します。以下を使用して、実行中の子プロセスの数を確認する必要があります。

sudo サービスのクロスバー ステータス。

これにより、エラー終了ワーカーは解決されますが、クロスバー コントローラーを再起動するコストがかかります。問題を解決するクロスバー/スルーウェイの方法に違いないと確信しています。理想的な方法は、php の考えられるすべてのエラーをキャッチして、致命的なワーカーの終了を防ぐことです。

ありがとう

于 2016-06-02T22:49:26.933 に答える