3

请求范围使我们能够在整个请求处理过程中跟踪请求变量。但我认为这取决于线程局部变量。我假设使用 Kotlin 协程会破坏请求范围语义的 Guice 注入。

4

1 回答 1

3

协程并不总是在同一个线程上运行,因此您会遇到线程局部变量的问题,例如 Guice 请求范围。

但是可以在协程之间传输线程局部变量:https ://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/coroutine-context-and-dispatchers.md#thread-local-data

我不知道 Guice,所以我不知道是否有办法集成ThreadContextElement到这个框架中。

另请参阅:如何将依赖 ThreadLocal 的代码与 Kotlin 协程一起使用

于 2019-03-01T06:10:50.377 回答