Повторная обработка БД-запроса в случае deadlock

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

Повторная обработка БД-запроса в случае deadlock

Сообщение donitoza »

Здравствуйте.

Подскажите пожалуйста правильный путь (для Yii2) повторной обработки запроса к БД, если предыдущий "поймал" deadlock.

Как есть сейчас:
Отдельный запрос - отдельная функция. В функции, вызов запроса обернут в try. В catch парсим ошибку на наличие заданного паттерна (определенных значений "SQLSTATE"), если находим - возвращаем соответствующий флаг из функции.
При вызове такой функции проверяем состоянеие флага, если поймали флаг, то вызываем функцию повторно (заданное количество раз).

Меня мучает вопрос - возможно есть более правильный, родной метод для подобных ситуаций?

Заранее, спасибо.

P.S. СУБД - PostgreSQL.
Ответить