я пытаюсь поймать
\Predis\Connection\ConnectionException
в приложении Symfony, но по какой-то причине оно не работает.
Все части кода, в которых задействован кэш, находятся в блоках try catch:
try {
$client = new PredisClient(getenv('CACHE_SERVER'));
$this->cache = new PredisCache($client);
} catch (\Predis\Connection\ConnectionException | \ErrorException $e) {
// If no redis cache available, use file cache
$this->log->addInfo('problems with reading from redis cache, temporarily use file system cache');
}
и при чтении из кеша
try {
if ($result_cache = $this->cache->fetch($cacheid)) {
return $result_cache;
}
} catch (\Predis\Connection\ConnectionException | \ErrorException $e) {
// forget the result and go on with database query
$this->log->addInfo('problems with reading from redis cache, getting the result from the database');
}
Но иногда получается такая ошибка:
Uncaught PHP Exception Predis\Connection\ConnectionException: "Error while reading line from the server. [tls://<NAME_OF_REDIS_SERVER:6380]" at /var/www/projec1/vendor/predis/predis/src/Connection/AbstractConnection.php line 155 {"exception":"[object] (Predis\\Connection\\ConnectionException(code: 0):
Я задаюсь вопросом об этом Исключении, потому что Predis \ Connection \ ConnectionException ловится в коде, но кажется, что в AbstractConnection.php try / catch из приведенного выше кода.
Если у кого-то есть идея ...
С уважением
Томас