predisを使用していて、チャンネルに登録してリスニングしている場合、60秒間exaxtlyした後、そのタイムアウト。Predisさんが「サーバーから回線を読み取っているときにエラーが発生しました」
同様の問題が議論されていますhereです。それの多くを得ることができませんでした。
私はpredis confファイルのconnection_timeoutを0に設定しようとしましたが、あまり役に立ちません。
また、私はワーカーを使用し続けている(データを送信して処理している)場合、エラーは発生しません。だから、タイムアウトの可能性があります。
これは私のコードスニペットです。これはエラーが発生する可能性があります。ワーカーにデータが渡された場合、このコードが実行され、それ以降はエラーは発生しません。
$pubsub = $redis->pubSub();
$pubsub->subscribe($channel1);
foreach ($pubsub as $message) { //doing stuff here and unsubscribing from channel
}
トレース
PHP Fatal error: Uncaught exception 'Predis\Network\ConnectionException' with message 'Error while reading line from the server' in Predis/Network/ConnectionBase.php:159 Stack trace:
#0 library/vendor/predis/lib/Predis/Network/StreamConnection.php(195): Predis\Network\ConnectionBase->onConnectionError('Error while rea...')
#1 library/vendor/predis/lib/Predis/PubSub/PubSubContext.php(259): Predis\Network\StreamConnection->read()
#2 library/vendor/predis/lib/Predis/PubSub/PubSubContext.php(206): Predis\PubSub\PubSubContext->getValue()
#3 pdf/file.php(16): Predis\PubSub\PubSubContext->current()
#4 {main} thrown in Predis/Network/ConnectionBase.php on line 159
は、そのも無効、あまりにredis.confタイムアウトをチェック。
redis-cliを使用してredis fineに接続できますか? –
はい、データが処理されてもワーカーが正常に動作していますが、60秒間放置するとエラーが発生し、エラーが発生します – amitchhajer