微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从反应流中保留上下文

如何解决从反应流中保留上下文

有人能帮我理解上下文是如何在响应式流中传递的吗? 参见下面的代码示例:

Flux<Integer> expectedFluxWithContext = Flux.just(1,2,3,4)
        .flatMap(item -> Mono.just(item).contextWrite(Context.of("traceId",item)))
        .doOnEach(signal -> System.out.println(signal.getContextView()));

当我运行上述代码时,我得到了预期的正确数据,但在 doOnEach 运算符中,上下文为空。

任何人都可以帮助我了解流中的上下文是如何共享的,以及我可以进行哪些更改以使其工作。

解决方法

上下文仅在管道中“向上”可用,因为它在订阅时附加,并且不知道下游的任何内容。它并不意味着传递在管道执行期间获得的东西,如果您想“传递”它,您可能需要使用元组。

有关更多信息,我建议阅读 Reactor 参考指南的相应部分: https://projectreactor.io/docs/core/release/reference/#context

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。