часто в последнее время наблюдаю картину: берут люди hibernate (сам пишу на java), поначалу всё красиво, а потом появляются сложные запросы, кастомные маппинги и прочее. в итоге переходят на что-то низкоуровневое. так ли нужен очередной orm?
так же зачастую надо логировать не только на onNext но и внутри flatMap
Тут согласен, в таких ситуациях приходится оборачивать в Mono.subscriberContext(), но такое встречается нечасто и несильно напрягает.
Основной плюс такого подхода — минимум оверхеда.
Системы сбора логов умеют их «склеивать» таким образом, что несколько строк отображаются в итоге как одно событие
+ многострочное событие порой выглядит намного читабельнее
От мавена в ближайшее время никто не откажется. Строгая структура, стабильный апи, миллион плагинов, которые развиваются и поддерживаются — этих доводов достаточно чтобы как минимум не переводить свои проекты на градл. Да и новые не всегда есть смысл на нём начинать.
1. можно использовать ShedLock, настраивается несложно, работает на аннотациях. Мне не нравится, в т.ч. из-за кривого названия:)
2. запрос в БД вида
INSERT ... ON CONFLICT UPDATE ... RETURN ...
. вызывать можно внутри метода, помеченного, как @Scheduled, установив его в самом начале. если insert/update проходит и что-то вернулось, выполняем дальнейшие действия
Это один раз засовывается в методы в какой-нибудь util-либе и везде потом используется. У нас это выглядит примерно так:
Тут согласен, в таких ситуациях приходится оборачивать в Mono.subscriberContext(), но такое встречается нечасто и несильно напрягает.
Основной плюс такого подхода — минимум оверхеда.
+ многострочное событие порой выглядит намного читабельнее
2. запрос в БД вида . вызывать можно внутри метода, помеченного, как @Scheduled, установив его в самом начале. если insert/update проходит и что-то вернулось, выполняем дальнейшие действия