powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов сервиса один раз или же много?
8 сообщений из 8, страница 1 из 1
Вызов сервиса один раз или же много?
    #39842343
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть мой сервер (Spring Boot 2) и стороннее API. Мой сервер подключается к этому API через ActiveMQ (они предоставили свою библиотеку, через которую они все делают). Каждую секунду API шлет сообщения ко мне на сервер. Есть некий Handler, который это все ловит и даёт мне определенный события в определенных методах. Есть мой сервис (с транзакциями) который вызывается для обработки события в Handler. В каждом методе Handler-а я получаю List<Event>. И вот у меня дилемма. Передавать сервису весь лист и при этом если там возникает Exception(даже если это первый элемент), то все остальные элементы остаются не обработанными и происходит rollback. Или же передавать по одному элементу в сервис и тогда я смогу контролировать возникновение ошибки и в случае чего добавлять в некий кэш. Но что меня настораживает во втором варианте так это то что если придет лист из 500 элементов, то будет 500 раз открытие сессии для бд и закрытие. Что посоветуете?
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842350
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Учебники рекомендуют при прочих равных использовать coarse-grained web service. Хотя, случаи бывают разные. Ну и наверно когда не можешь определиться, следует начать с coarse-grained granularity, плюс не помешает разумная обработка исключений
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842380
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopЕсть мой сервер (Spring Boot 2) и стороннее API. Мой сервер подключается к этому API через ActiveMQ (они предоставили свою библиотеку, через которую они все делают). Каждую секунду API шлет сообщения ко мне на сервер. Есть некий Handler, который это все ловит и даёт мне определенный события в определенных методах. Есть мой сервис (с транзакциями) который вызывается для обработки события в Handler. В каждом методе Handler-а я получаю List<Event>. И вот у меня дилемма. Передавать сервису весь лист и при этом если там возникает Exception(даже если это первый элемент), то все остальные элементы остаются не обработанными и происходит rollback. Или же передавать по одному элементу в сервис и тогда я смогу контролировать возникновение ошибки и в случае чего добавлять в некий кэш. Но что меня настораживает во втором варианте так это то что если придет лист из 500 элементов, то будет 500 раз открытие сессии для бд и закрытие. Что посоветуете?

А что мешает каждый евент гнать отдельно в месседж брокере.

Если хотите слать листом, то надо еще промежуточный сервис который распаковывает лист и посылает его в другую очередь где консьюмеры его подхватывают и долбят по одиночке евенты.

Что касает пула для бд и пула для пулэкзекьютора для выполнения пачки событий в консьюмере, то почитайте отдельно: database pool connection, message broker publisher/subscriber, pool executor Java.
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842404
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Вы спрашиваете вопрос чисто бизнес логики. На который тут не ответят:
- слать в базу пачкой в одной транзакции или в базу 500 коммитов и пачки нету?
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842408
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВ каждом методе Handler-а я получаю List<Event>. И вот у меня дилемма. Передавать сервису весь лист и при этом если там возникает Exception(даже если это первый элемент), то все остальные элементы остаются не обработанными и происходит rollback. Так происходит только если бездумно вставлять везде @Transactional и/или декорировать checked exceptions.
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842414
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergunka
А что мешает каждый евент гнать отдельно в месседж брокере.

Если хотите слать листом, то надо еще промежуточный сервис который распаковывает лист и посылает его в другую очередь где консьюмеры его подхватывают и долбят по одиночке евенты.

Что касает пула для бд и пула для пулэкзекьютора для выполнения пачки событий в консьюмере, то почитайте отдельно: database pool connection, message broker publisher/subscriber, pool executor Java.

Я получаю данные сразу в Handler-е. Внутрь ActiveMQ я не лезу ибо дали либу которая все нужное делает за меня.
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842415
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловТак происходит только если бездумно вставлять везде @Transactional и/или декорировать checked exceptions.
Что значит декодировать? в этом случае
...
Рейтинг: 0 / 0
Вызов сервиса один раз или же много?
    #39842440
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвозникает Exceptionкод где?
Ест веб сервис на порту. Есть сервисный слой или БЛ. Есть ИС и ее границы куда чужая не входит...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов сервиса один раз или же много?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]