![](/img/trans.png)
[英]How to compose json responses from two different controllers? Spring 3/Jackson
[英]Spring cloud stream merge responses from two different functions
我正在嘗試使用 spring 雲 stream 來解決以下問題:
我有一個 class 調用兩個單獨的函數(函數 A 和 B),如果 886982359588 A 完成,這兩個函數必須並行工作,它必須調用 Function C,如果 Function B 完成,也會發生同樣的情況,但這將調用 888698882359然后我需要等待 Function C 和 Function D 完成並將兩個響應合並為一個響應,然后將此合並響應 object 返回到必須等待獲得該響應的起始 class。
我遇到的問題是:
streamBridge.send
同時啟動 Function A 和 Function B。我正在使用
spring-cloud-stream-3.1.3
spring-cloud-stream-binder-rabbit
必需我不能使用Kafka
必需
示例代碼
服務等級
@Service
@RequiredArgsConstructor
public class ServiceClass {
@NonNull
private final StreamBridge streamBridge;
@Override
protected MergedResponse execute(Input input) {
var send1 = streamBridge.send("functionA-in-0", input);
var send2 = streamBridge.send("functionB-in-0", input);
//TODO: Wait for Function E response object
}
}
Function 一
@Slf4j
@Configuration
public class FunctionAClass{
@Bean
public Function<Input, OutputFunctionA> functionA() {
return input -> {
//TODO: Invoke Function C to pass OutputFunctionA object
return OutputFunctionA.builder.build();
};
}
}
我不介意使用Supplier
或Consumer
而不是Function
。
編輯你好,@Oleg Zhurakousky 感謝你的幫助,回答你的問題我的問題是:我必須創建一個 REST 端點,它使用N
個不同的第三方 REST 端點(首先是兩個,異步是必須的,因為它太慢了順序處理每個請求)我不需要他們的所有數據,只需要幾個字段來構建一個通用的 object。我打算使用streamBridge
啟動前兩個函數,這些函數將為每個三分之一構建所需的請求-party,然后是一個 function 來調用他們的每個端點,然后是一個 function 來為每個響應構建一個公共的 object,最后是一個 function 來收集公共對象並將它們發送到我的服務的響應中。 如果您還有其他問題,請告訴我。
問候。
幾點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.