我目前正在将现有的Spring异步REST架构迁移到Spring的新WebFlux库,并且有一个关于加入多个请求的问题,以便他们可以监听相同的已发布响应。
用例如下:
客户端B如何订阅客户端A正在等待的相同响应流?
答案 0 :(得分:8)
"客户A已订阅并等待回复"
我想这个请求被编码为Subscriber<Response> clientA = ...
Mono<Response> request = makeRequest(...);
request.subscribe(clientA);
,而客户端A依次对它进行编码:
Subscriber<Response> clientB = ...
request.subscribe(clientB);
然后clientB应该以相同的方式订阅:
Mono<Response>
此外,缓存不应包含先前保存的响应数据,而应包含SELECT
CAST(10 AS NUMERIC) + CAST(254.53 AS NUMERIC) = CAST(264.53 AS NUMERIC) AS TestComparison1,
CAST(10 AS NUMERIC) + CAST(254.54 AS NUMERIC) = CAST(264.54 AS NUMERIC) AS TestComparison2
Result: "1" "0"
类型的请求本身。然后,如果在缓存中找到这样的请求,则新客户端只需订阅它,无论该请求是否已经完成。