Size: a a a

Scala User Group

2021 June 01

ИМ

Иван Малышев... in Scala User Group
Почему? Запровайдил ContextService в начало, реквест процессор и в LoggetService. Больше нигде его нет, а логгер логирует контекст
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну значит иметь логгер в виде сервиса
источник

Oℕ

Oleg ℕizhnik in Scala User Group
мало того, инициализировать новый логгер на каждый запрос
источник

Oℕ

Oleg ℕizhnik in Scala User Group
если не инициализировать, то представим, что будет если ты захочешь запустить две независимые подоперации параллельно в виде разных спанов
источник

Oℕ

Oleg ℕizhnik in Scala User Group
если они унаследуют один реф, одна изменит спан на свой
источник

Oℕ

Oleg ℕizhnik in Scala User Group
и вторая будет логировать в спане первой
источник

Oℕ

Oleg ℕizhnik in Scala User Group
т.е. это очень решение заставляет тебя делать инициализацию модуля при запуске каждого обработчика и не позволяет иметь ветвящиеся спаны внутри сколь-угодно сложной обработки запроса
источник

Oℕ

Oleg ℕizhnik in Scala User Group
а в случае контекстного ты можешь навертеть любую иерархию, ветвить спаны для параллельных задач,  посылать обработку в свои же демоны в виде следующего спана
источник

ИМ

Иван Малышев... in Scala User Group
Сорри, но что такое спаны?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
мы про трейсинг говорим?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
там обычная терминология TraceId - это идентификатор длинной задачи, выполнение которой может проходить через множество сервисов, начинающейся с внешнего события, например запроса пользователя
источник

Oℕ

Oleg ℕizhnik in Scala User Group
SpanId - кусочек этого "следа", очередная хлебная крошка
источник

ИМ

Иван Малышев... in Scala User Group
Спс, ещё просто не вникал в терминологию. Ну ок, распараллелил я две свои подзадачи, каждая к скопированному родительскому контексту добавила свой спан
источник

Oℕ

Oleg ℕizhnik in Scala User Group
да, сделать это с одним FiberRef не получится
источник

VD

Vladislav Dolbilov in Scala User Group
Кажется тут не так работает. Наследуется только значение
источник

ИМ

Иван Малышев... in Scala User Group
Да ну?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну тогда лучше
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну с уточнением Владислава получится
источник

ИМ

Иван Малышев... in Scala User Group
Был в начале FiberRef("abc"), подзадачи заапдейтили его на "abc:1" и "abc:2". Я так понял, но ещё не проверял
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну получается, чтобы тебе запустить подзадачу тебе нужно сначала заапдейтить его на
abc : 1,
источник