169 похожих чатов

То есть события без очереди особо не имеют смысла?

10 ответов

20 просмотров

Есть события у тебя через psr/event , а есть события в очереди https://habr.com/ru/articles/699492/

Очереди с хранением событий, подтверждением обработки и с повторными попытками при ошибках дают гарантию, что событие не потеряется и что когда-нибудь через пять минут слушатель поднимется и всё своё дообработает. А без очереди таких гарантий нет. Любой Exception в одном из слушателей может обрушить PHP-процесс и остальные слушатели не выполнятся. И даже если каждый вызов оборачивать в try-catch и повторно запускать в цикле, то контроллер не будет стоять запущенным пять минут, ожидая когда всё дообработается.

Дмитрий Елисеев
Очереди с хранением событий, подтверждением обрабо...

ну это уже надо все разбивать тогда на атомарные части, а без очередей транзакцию открыл, напихали модули запросов и закрыл, не отработало, ну и ладно, вернем ошибку

Павел Дузов
ну это уже надо все разбивать тогда на атомарные ч...

Да, на атомарные. Иначе при таком запуске трёх задач одним залпом транзакция из-за ошибки в третьем модуле откатилась, а письмо из второго модуля уже клиенту ушло.

Александр-Егоров Автор вопроса
Дмитрий Елисеев
Очереди с хранением событий, подтверждением обрабо...

Кстати а как вы валидируете реквесты? На уровне UI и передаете в контроллер уже проваледироанный запрос. Не увидел у вас в стриме в проекте файлов реквест

Александр Егоров
Кстати а как вы валидируете реквесты? На уровне ...

и там и там, первое от дурака защита, второе для корректности данных для сохранения

Александр-Егоров Автор вопроса
Павел Дузов
и там и там, первое от дурака защита, второе для к...

Ага, то есть файлы реквестов к модулям не имеют отношения они должны лежать на уровне контроллеров

Александр Егоров
Кстати а как вы валидируете реквесты? На уровне ...

Десериализую на Command и валидирую эту команду. Дальше домен всё проверяет с InvalidArgumentException. Отдельных Request нет.

Дмитрий Елисеев
Десериализую на Command и валидирую эту команду. Д...

ммм.... "домен всё проверяет с InvalidArgumentException"... обычно это странно, ну мол не самый распространенный эксепшен который может кинуть домен

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
10
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Изменение типа с SomeException на String и правда удобней @cheese_hs . А вот такой вариант насколько некрасив еще? loadConfigDB :: IO (Either String ConfigDataBase) loadConfi...
Camara
7
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Карта сайта