Группа единомышленников фреймворка Symfony. Здесь вы можете поделиться опытом работы с фреймворком или задать любой интересующий вопрос ;) По всем вопросам: @sovetit
Типо такого после обработки каждого месседжа
$em = $this->managerRegistry->getManager(); if (!$em instanceof EntityManagerInterface) { return; } if (false === $em->isOpen()) { $this->managerRegistry->resetManager(); return; } $this->managerRegistry->getManager()->clear();Читать полностью…
Т.е. например сделал мидлвар транхакшионал и теперь страдаешь
Читать полностью…Про шард тоже слышал, а вот с консюмером проблема, не могу сделать 1 консюмер, потому что сообщения обарабываются не сильно уж и быстро и запущено 50 консюмеров щас =)
Читать полностью…Опять же можно сделать паралельные очередя- Шардировать операции, или же сделать просто 1 консюмера
Читать полностью…Ну и делать меньше сущности, а то может сделал на 50 колонок юзера с балнсом профилем и каким нить счетчиками а потом удивляться дедлокам
Читать полностью…Ну с учетом того, что дедлок это 500, то оно уйдет само на ретрай даже без отлавливания, если только хочешь что то сделать дополнительно
Читать полностью…В случае с дедлоками - да, скорее как временный костыль, чтобы чисто пожар потушить
Читать полностью…На собесах часто задают подобные вопросы)) может стоить походить по ним?)
Читать полностью…или руками делаешь транзакцию в БД например с апи колом внутри
Читать полностью…Т.е. чтобы все операции с одним юезром были только в одной очереди и с 1 консюмером, тогда не будет паралельных операций а только последовательные
Читать полностью…Тут опять же большой вопрос по предметной области - можешь ли ты нарушать очередность, что он уйдет в конец
Читать полностью…Т.е., мне в воркерах и очередях можно просто дедлок исключение отлавливать но ничего не делать, чтоб повторная попытка была ?
Читать полностью…Как вариант - запустить функцию заного с теми же входными аргументами, предварительно очистив и перезапустив em. Опять же, если это воркер мессенджера он сам уйдет на ретрай
Читать полностью…а вообще да, дедлоки надо распедаливать конечно с уровня логики приложения
Читать полностью…Если ты поймал EM closed - то тогда реконнектить и все восстанавливать, чтобы EM снова был жив. Когда-то делал подобное, но деталей уже не помню.
Читать полностью…Может кто помнит в книжке с Кабанчиком ведь есть подобный разбор тем?
Читать полностью…Энтити менеджер по идее закроется и на попытку повторно сделать flush ты получишь Entity Manager is closed
Читать полностью…