其他分享
首页 > 其他分享> > Spring Integration:发布订阅频道.它是异步的吗?

Spring Integration:发布订阅频道.它是异步的吗?

作者:互联网

在入站网关收到String消息后,我正在使用发布 – 订阅通道,并将其并行发送到记录器以记录消息,并转换为变换器以转换消息.我希望这两种活动同时发生.

我的问题非常简单 – Spring集成中的发布订阅频道是否并行发送消息给它的子文件?

以下是spring-integration-context.xml源代码片段.

<int:gateway id="gateway" service-interface="com.test.Gateway">
    </int:gateway>
<int:publish-subscribe-channel id="publishsubscribechannel" />

<int:service-activator input-channel="publishsubscribechannel"
        method="transformEvent" ref="transformer" output-channel="transformerreplychannel">
</int:service-activator>
<int:service-activator input-channel="publishsubscribechannel"
        method="logMessage" ref="logger">
</int:service-activator>

这里变压器和记录器是publishsubscribechannel的2个订户.在此设置中,默认情况下,从网关流向记录器和变换器的消息是异步发生的……或者我需要做一些其他配置来实现相同的目的.

解决方法:

…或使用JavaConfig

@Bean
public MessageChannel publishsubscribechannel() {

return new PublishSubscribeChannel(executor());
} 

@Bean
public ThreadPoolTaskExecutor executor() {

ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
pool.setCorePoolSize(10);
pool.setMaxPoolSize(10);
pool.setWaitForTasksToCompleteOnShutdown(true);
return pool;
}

标签:spring,publish-subscribe
来源: https://codeday.me/bug/20190713/1446565.html