亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

彈簧啟動 + Web 流量:并行運行某些步驟時上下文丟失

彈簧啟動 + Web 流量:并行運行某些步驟時上下文丟失

倚天杖 2022-09-28 16:27:52
我正在嘗試使用春季webflux的上下文功能來攜帶一個簡單的變量。我有一個WebFilter設置了一個具有此類變量的上下文,我嘗試在通量/流的不同階段在我的控制器中使用它。在某些時候,我在調用 Flux 類的方法“parallel()”后丟失了它。過濾器:public class TestFilter implements WebFilter {    private Logger LOG = LoggerFactory.getLogger(TestFilter.class);    @Override    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {        return chain.filter(exchange)            .doOnEach(voidSignal -> System.out.println("filter:"+voidSignal.getContext().getOrEmpty("blob"))).subscriberContext(Context.of("blob", "kapoue"));    }}控制器:@RestController@RequestMapping(TestControllerWebFlux.ROOT)public class TestControllerWebFlux {    static final String ROOT = "/flux";    static final String TEST = "/test";    private WebClient webClient = WebClient.create();    @GetMapping(            value = TEST,            produces = {MediaType.APPLICATION_JSON_VALUE})    public Mono<String> test() {        System.out.println("controller1:"+Thread.currentThread());        Flux<String> call = webClient.get().uri("http://localhost:" + 8080 + ROOT + "/test2").retrieve().bodyToFlux(Result.class).map(Result::getValue);        return call.map(s -> s+"0")            .doOnEach(stringSignal -> System.out.println("controller2:"+stringSignal.getContext().getOrEmpty("blob")))            .parallel()            .doOnEach(stringSignal -> System.out.println("controller3:"+stringSignal.getContext().getOrEmpty("blob")))            .map(s -> s+"0")            .doOnEach(stringSignal -> System.out.println("controller4:"+stringSignal.getContext().getOrEmpty("blob")))            .reduce((s, s2) -> s+s2)            .doOnEach(stringSignal -> System.out.println("controller5:"+stringSignal.getContext().getOrEmpty("blob")))            .map(s -> {                System.out.println("controller6:"+Thread.currentThread());                return s;            });    }
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

這看起來像反應堆中的一個錯誤。我報告了它:https://github.com/reactor/reactor-core/issues/1656


查看完整回答
反對 回復 2022-09-28
  • 1 回答
  • 0 關注
  • 74 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號