Время жизни БД соединения в commands

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
getman
Сообщения: 2
Зарегистрирован: 2021.07.19, 11:41

Время жизни БД соединения в commands

Сообщение getman »

Добрый день. Проблема в том что моя команда которая управляется через Cron не всегда выполняется во время и бывает такое что скрипт может выполняться 30-40-60 секунд (там стоят sleep()), после чего результаты выполнения заносятся в базу. Так вот, время жизни сессии бд составляет не более 30 секунд. После этого бд закрывается и возвращается ошибка при попытке записи.

Подскажите как изменить время таймаут сессии в commands?

Хотелось бы не чтобы глобально во всем фреймворке менялся таймаут, а только в одном классе команд. Если невозможно такое, то подскажите глобальное решение

Фреймворк Yii2 basic
getman
Сообщения: 2
Зарегистрирован: 2021.07.19, 11:41

Re: Время жизни БД соединения в commands

Сообщение getman »

Решил проблему таким способом из статьи https://web-answers.ru/php/yii2-server-mysql-ushel.html:

Код: Выделить всё

Yii::$app->db->createCommand('SET SESSION wait_timeout = 300;')->execute();
Не забудьте добавитьв начале кода:

Код: Выделить всё

 use Yii;
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Время жизни БД соединения в commands

Сообщение unknownby »

Почитайте про очереди, думаю в вашем случае будет полезно.
Ответить