Size: a a a

2020 November 17

SI

Sergei Iamskoi in Yii Framework 3
Alexey Samoylov
Идеально пдо эксепшны ловить и ретраить с нужной стратегией, а все остальное не идеально
Да, и mj4444 предложил этот вариант выше с retryHandler, но пока не понятно как его оуществить 🙂
источник

AS

Alexey Samoylov in Yii Framework 3
Sergei Iamskoi
Да, и mj4444 предложил этот вариант выше с retryHandler, но пока не понятно как его оуществить 🙂
подозреваю, что на уровне юнита бизнес логики
источник

m

mj4444 in Yii Framework 3
Sergei Iamskoi
Хм, retryHandler хорошее было бы решение. Только он протектед, сеттер тоже протектед, а сам Command захардкожен в AbstractConnection, а сам PostgresConnection финальный 🙂 Или я что-то упустил?
1. Command не финальный. Сделайте на основе него класс (можно безымянный) с 1 методом , который на входе будет принимать объект команду и ваш метод обработчик. Этот метод сможет установить retryHandler.
2. Создайте свой класс наследник для Command.
источник

AS

Alexey Samoylov in Yii Framework 3
т.к. где-то придется переоткрывать бд транзакцию, например
источник

m

mj4444 in Yii Framework 3
Alexey Samoylov
Идеально пдо эксепшны ловить и ретраить с нужной стратегией, а все остальное не идеально
Вот вот...
источник

SI

Sergei Iamskoi in Yii Framework 3
mj4444
1. Command не финальный. Сделайте на основе него класс (можно безымянный) с 1 методом , который на входе будет принимать объект команду и ваш метод обработчик. Этот метод сможет установить retryHandler.
2. Создайте свой класс наследник для Command.
1й пункт то понятен. а 2 не получится сделать с pgsConnection - по сути, придется его копипаснуть и заменить в нем на свой Command - что выглядит не очень.
источник

m

mj4444 in Yii Framework 3
Sergei Iamskoi
1й пункт то понятен. а 2 не получится сделать с pgsConnection - по сути, придется его копипаснуть и заменить в нем на свой Command - что выглядит не очень.
Да это всё глупая идея, так как если конекшен упал, нужно закрыть старый конекшен, открыть новый, заново получить объект Command у DB...
источник

SI

Sergei Iamskoi in Yii Framework 3
Ладно, пока в виде костыля оставлю
источник

Д

Дмитрий in Yii Framework 3
Sergei Iamskoi
Ладно, пока в виде костыля оставлю
Что за магия с this->code?
источник

SI

Sergei Iamskoi in Yii Framework 3
Дмитрий
Что за магия с this->code?
хз как еще индентифицировать экспешен с падением базы. Код падения лежит в code, а он протектед и нет методов для его получения. Парсить getMessage - такое себе. Через эту магию можно получить доступ к приватным\протектед полям\методам любого класса без рефлексии
источник

Д

Дмитрий in Yii Framework 3
Например, можно создать issue, а мы предложим решение ;)
источник

SI

Sergei Iamskoi in Yii Framework 3
Задача уже в прод скоро пойдет, нет времени ждать) тудушку поставил, что надо отрефакторить. issue заведу.
источник

A

Alex in Yii Framework 3
Sergei Iamskoi
Задача уже в прод скоро пойдет, нет времени ждать) тудушку поставил, что надо отрефакторить. issue заведу.
юзаю это, воркеры не падают, все ок https://github.com/xjflyttp/yii2-db-reconnect
источник

Д

Дмитрий in Yii Framework 3
Sergei Iamskoi
Задача уже в прод скоро пойдет, нет времени ждать) тудушку поставил, что надо отрефакторить. issue заведу.
Супер :)
источник

T

TradersVE in Yii Framework 3
источник

AM

Alexander Makarov in Yii Framework 3
источник

AS

Alexey Samoylov in Yii Framework 3
Sergei Iamskoi
хз как еще индентифицировать экспешен с падением базы. Код падения лежит в code, а он протектед и нет методов для его получения. Парсить getMessage - такое себе. Через эту магию можно получить доступ к приватным\протектед полям\методам любого класса без рефлексии
очень крутой хак
источник

SI

Sergei Iamskoi in Yii Framework 3
Alexey Samoylov
очень крутой хак
Мы его иногда для гидратора используем, вместо рефлексии, что бы модельки заполнять в репозиториях. На больших объемах данных скорость в разы выше:)
источник

SI

Sergei Iamskoi in Yii Framework 3
Ребят, а подскажите, каким образом в github повторно запустить build? Сделал PR - один тест красный. Как его перезапустить?
источник

Д

Дмитрий in Yii Framework 3
Открой проведенную проверку и справа над выводом информации о проверке будет кнопка Re-run
источник