Область запроса позволяет нам отслеживать переменные запроса на протяжении всей обработки запроса. Но я думаю, что это зависит от локальных переменных потока. Я предполагаю, что использование сопрограмм Kotlin нарушит семантику Guice Injection of Request Scope.
Будет ли сопрограмма Kotlin всегда работать в одном потоке? Если нет, то как мы можем заставить его работать с семантикой Guice Request Scope?
Ответы (1)
Сопрограммы не всегда работают в одном и том же потоке, поэтому у вас будут проблемы с локальными переменными потока, например. Объем запроса Guice.
Но можно передавать локальные переменные потока между сопрограммами: https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/coroutine-context-and-dispatchers.md#thread-local-data
Я не знаю Guice и поэтому не знаю, есть ли способ интегрировать ThreadContextElement
в эту структуру.
См. также: Как использовать код, который использует ThreadLocal с сопрограммами Kotlin
person
Rene
schedule
01.03.2019