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

Ну вот если нужно после успешной оплаты - изменить в

транзакциях статус "оплачено", дата зачисления. Это понятно.

А после нужен обработчик - от типа платежа они разные - начислить баланс, или активировать какую-то услугу, или еще что-то.

А затем выслать разные 2 уведомления пользователям, которые причастны к этому. И еще 1 уведомление админу.

Может кто подсказать про организацию правильную? Job, event? Неправильно же в 1 евенте сразу делать кучу действий?

9 ответов

8 просмотров

На событие может быть подписано несколько слушателей, это нормально. Вы можете начать с того что создадите сервис PaymentAcceptService. И инкапсулируете в нем обращения к другим сервисам: UserBalance, OrderStatusUpdate и тп

В зависимости от сложности системы и перспектив на будущее есть разные варианты по сложности и качеству: 1) Делать синхронно, вызывая по очереди нужные сервисы 2) Обрабатывать по крону, если задержка не критична. 3) Обрабатывать асинхронно через джобу. У ларавель очень развитый механизм очередей и куча фич. можно создавать job batch, вложенные джобы и тд. 4) Можно иметь какую-то шину данных, куда будет кидаться эвент и твои сервисы будут на них реагировать.

Александр-www Автор вопроса
Sergey Shitikov
В зависимости от сложности системы и перспектив на...

Спасибо за ответ. Интересует 4 вариант. Я делаю эвент и потом разные слушатели?

Александр www
Спасибо за ответ. Интересует 4 вариант. Я делаю эв...

Этот вариант не завязан на ларавелевских эвентах: имеется ввиду отдельный сервис, который принимает/отправляет сообщения от одних сервисов другим. Например, оплата прошла, сообщение ушло в шину. На сообщение подписано несколько твоих сервисов, которые на него отреагировали и в свою очередь свои таски выполнили. Есть разные варианты реализации, в частности, можно кролик (RabbitMQ) юзать. Наверняка, есть готовые пакеты и реализации, может тут ребята подскажут если интересно. Но это не для маленьких проектов.

Александр-www Автор вопроса
Sergey Shitikov
Этот вариант не завязан на ларавелевских эвентах: ...

И всегда лучше в обработчиках событиях вызывать севервис и в нем вся логика реализуется да?

Александр-www Автор вопроса
Sergey Shitikov
Этот вариант не завязан на ларавелевских эвентах: ...

Где почитать о таком?? В каких книгах это описывается? На русском

Sergey Shitikov
Этот вариант не завязан на ларавелевских эвентах: ...

Пусть кафку юзают, чтобы сразу в ад лезть ))

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Народ, кто шарит в расширенных разделах (EBR/EPR) на дисках с разметками MBR? Везде пишут (в вики рус/англ) в частности + другие источники смотрел, что первый сектор расширенн...
Eugene Krasnikov (ᴊɪɴ x)
1
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Карта сайта