Я столкнулся с проблемой в своем проекте Laravel 12. Обычно я сохраняю свои данные в удаленной базе данных SQL Server, но мне приходится учитывать случай неисправности сервера БД. У меня есть резервный локальный сервер Postgresql на случай подобных ситуаций. Логика такова:
если я не могу войти в систему или выполнить запрос в течение разумного периода времени,
то я предполагаю, что сервер недоступен, и записываю данные в
Postgres в течение 10 минут, чтобы избежать потери данных
.
Laravel PDO поддерживает тайм-аут запроса SQL-сервера через
PDO::SQLSRV_ATTR_QUERY_TIMEOUT
но я не нашел способов установить тайм-аут входа в систему.
Мой файл data.php (поля неточны, основное внимание уделяется только полю параметров)
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'options' => [
PDO::SQLSRV_ATTR_QUERY_TIMEOUT => 3,
'LoginTimeout' => 3
],
Подробнее здесь: https://stackoverflow.com/questions/797 ... in-laravel