Как поручить predis продолжить при ошибке - PullRequest
0 голосов
/ 29 октября 2019

В случае сбоя Redis, возможно ли дать команду php predis (https://github.com/nrk/predis) продолжить и не умереть?

У меня есть Redis для обработки кэша приложения, но приложение может работать безкеш, он просто бьет по базе данных тяжелее. Я предпочитаю откат к базе данных, а затем приложение умирает. Я не могу найти способ дать команду predis для продолжения при сбое.

Я думал установить предел подключения около 5секунд, если он не может подключиться к Redis, приложение должно продолжаться.

Возможно ли это?

Fatal error: Uncaught Predis\Connection\ConnectionException: Operation timed out [tcp://128.0.0.1:6379]

1 Ответ

0 голосов
/ 14 ноября 2019

Вы можете поймать исключение подключения и откат к вашей базе данных. Пример:

try {
    return $predis->get('foobar');
} catch(\Predis\Connection\ConnectionException $ex) {
    // fallback to database call
}

Для более чистого кода оберните вызов базы данных / redis в новый класс, который абстрагирует фактическое соединение, поэтому вашему вызывающему коду не нужно заботиться о том, какой источник данных использовался.

...