Как стать автором
Обновить

Комментарии 18

НЛО прилетело и опубликовало эту надпись здесь

Ещё труднее представить что будет когда команда с её team lead-ом узнает что из MDC убрали thread propagation…

Очень интересно) Расскажите пожалуйста подробнее) Был ли уже какой-то негативный опыт?

Попробуйте запустить async operation в вашей аппликации в вашем thread pool-е (если конечно team lead разрешит) и напишите тут о ваших findings.

А с MDC работать и внутри async и внутри основного потока?

Да

Свой decorator, который вешается на thread pool. Почти как таковой от security.


У меня свой mdc closeable, и утильный метод, который знает, что именно в MDC нужно прокидывать. Могу скинуть код, всё лаконично.


И да, sleuth в проекте присутствует и свои поля пробрасывает сам. У меня только нужные мне (api uri, логин юзера, т.п.).

т. е. все сейчас должны знать что надо пользоваться вашим thread pool — ом для async operations. Не так все тривиально

Практически не встречал ситуаций, когда в приложении несколько thread-pool-ов для запуска @Async-методов, и разработчикам приходится выбирать из них.
Всё-таки чаще это или дефолтный, или прям тут в приложении однажды описанный бин, которому нужно просто вызвать setTaskDecorator.

Если над одним кодом работает столько незнакомых людей, всё равно это ничего не ломает — они продолжают писать просто Async. Ситуация, когда и разработчиков овер-много, и тред-пулов в контекст уже набросали — за скоупом моего решения.
Мы хотели как-то очень по-простому. И поэтому выбрали сделали такое решение.
Просветите, пожалуйста, а в чем мораль? Что не надо забывать про исключения? Не то, чтобы я против, но стоит ли ради этого писать целую статью — я не знаю.
НЛО прилетело и опубликовало эту надпись здесь
Да, слона и не приметил. Однако всё равно как-то тривиально.
Тривиально, согласен. Но для нас эта была увлекательная эпичная история, которую мы постарались также просто и лаконично описать в пятничном легком чтиве)
Дело не в исключениях, а в том, что мы неправильно воспользовались AOP и «потеряли» ответы на запросы)
А всего-то надо было заранее написать хотя бы один интеграционный тест.
Который вызовет вашу апишку и успешно упадет. Никакого мерджа. Чтение доки, спокойный фикс и в прод без багов.
Да, совершенно верно) к счастью прода тогда ещё не было и заметили на дев стенде. Так что относительно быстро с одной стороны, но все равно медленнее чем это обнаружил бы тест)

Вот к чему приводит чтение документации по диагонали.
Везде, когда заходит речь про Around, пишут, что возвращаемое им значение переопределяет значение, возвращённое методом. В этом, собственно, и смысл этого типа аспектов. А void с точки зрения JVM — это просто метод, который всегда возвращает null. Вопрос к тимлиду в первую очередь: как создавший проблему код вообще прошёл ревью?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий