Size: a a a

Scala User Group

2021 September 13

D

Dmitry in Scala User Group
ой, это я фигню какую-то написал
>o.map(f).getOrElse(f(default))

но суть надеюсь ясна
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Если тип о -- моноид, то можно фолдмап
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Из котов
источник

D

Dmitry in Scala User Group
спасибо
источник

Oℕ

Oleg ℕizhnik in Scala User Group
персонально мне кажется foldMap для getOrElse не оч читаемым,
я бы так и оставил f(o.getOrElse(default)).some
источник

P

Pavel in Scala User Group
в целом функция странно выглядит - как будто f может null вернуть
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Думаю, что Option здесь вместо Some
источник

P

Pavel in Scala User Group
да и Some зачем
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну бывает нужно
источник

R

RAFIZ in Scala User Group
вопрос про MDC

есть 1 единственный поток у игрушечного веб-сервера (акка-хттп, допустим). и есть всего один эндпоинт: принимает входящий запрос, генерит рандомно реквест-айди, кладет его в MDC-контекст и делает хттп-запрос на другой сервер неблокируясь, от которого получает строку s (всегда одну и ту же, для простоты пусть второй сервер будет таким примитивным) и в ответе возвращает тот сгенерённый изначально реквест-айди сконкатенированный с этой строкой s

сам вопрос: такое возможно соорудить, учитывая что за время похода во внешний сервер на этот однопоточный сервер прилетит ещё один запрос и сгенерится + поместится в контекст ещё один айдишник? а при ответе на первый запрос надо не потерять первый айдишник
источник

R

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

реально такое или х*ета?
источник

NV

Nikita Vilunov in Scala User Group
не стоит так делать
источник

NV

Nikita Vilunov in Scala User Group
разумеется такое соорудить возможно, но оно будет ломаться от каждого чиха
источник

NV

Nikita Vilunov in Scala User Group
что мешает прокидывать это обычным аргументом функции?
источник

R

RAFIZ in Scala User Group
конечно. я на этом примере хотел понять как этот поток при получении от внешнего сервиса ответа вспомнит тот контекст? контекст первого запроса.

если за время похода из него сгенерится новый и поместится в контекст
источник

NV

Nikita Vilunov in Scala User Group
он может вспомнить если вы сделаете хакнутый ExecutionContext который будет уметь запоминать MDC и восстанавливать его
источник

λ

λoλegΥch in Scala User Group
в акке есть своя приблуда для мдц
источник

λ

λoλegΥch in Scala User Group
но все это от лукавого
источник

NV

Nikita Vilunov in Scala User Group
она не оч работает тоже
источник

R

RAFIZ in Scala User Group
так а на деле то как работает? на деле то в реальной системе запросов тоже часто гораздо больше, чем потоков, но при директива logResponse логирует всегда тот же набор параметров, что logRequest независимо от того, куда были совершены походы между двумя этими вызовами за время выполнения запроса (и как часто сменялись потоки обрабатывавшие этот запрос)
источник