[英]SI Publish-subscribe channel - parallel or sequential execution?
我創建了一個發布訂閱頻道,例如
@Bean
MessageChannel parallelRunningSubscribableChannel() {
return MessageChannels.publishSubscribe("parallelRunningSubscribableChannel").get();
}
我的主要流程以該渠道結束,其他 2 個流程以該渠道開始:
@Bean
public IntegrationFlow mainFlow() {
return IntegrationFlows
.from(...)
...
.channel(parallelRunningSubscribableChannel)
.get();
}
@Bean
public IntegrationFlow subFlow1() {
return flow -> flow.channel(parallelRunningSubscribableChannel())
.handle(...)
...
}
@Bean
public IntegrationFlow subFlow2() {
return flow -> flow.channel(parallelRunningSubscribableChannel())
.handle(...)
...
}
我假設 subFlow1 和 subFlow2 順序運行(例如,首先運行 subFlow1,然后運行 subflow2),對嗎?
我需要知道是否創建了一個新線程,因為我希望 2 個子流在同一個數據庫事務中運行。
只是出於好奇,我怎樣才能讓 2 個子流並行運行?
謝謝!
問候,
五。
PublishSubscribeChannel
默認不是並發的。 請參閱文檔: https://docs.spring.io/spring-integration/docs/current/reference/html/core.html#channel-implementations-publishsubscribechannel
要使這些訂閱者在他們自己的線程中並行工作,您需要為此通道顯式配置一個TaskExecutor
。
我希望 2 個子流在同一個數據庫事務中運行。
如果你讓它們並行,它們將在自己的線程中工作,因此它們不能參與同一個 TX。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.