我目前正在通过网关使用弹簧集成通道,并看到一个非常奇怪(和烦人)的行为。消息在发送后处理得非常晚(超过一分钟)。
由于通道由它自己的线程池异步处理,我猜这些线程根本不活跃。由于发送这些消息非常重要,我想强制在当前线程中同步处理消息。
这可能吗?
我目前的配置:
<int:annotation-config />
<task:executor id="integrationPool" pool-size="0-100" />
<int:poller default="true" task-executor="integrationPool" fixed-rate="50" />
<int:channel id="loggableevents">
<int:queue />
</int:channel>
<int:channel id="outgoingevents">
<int:queue />
<int:interceptors>
<int:wire-tap channel="loggableevents" />
</int:interceptors>
</int:channel>
<int:outbound-channel-adapter channel="outgoingevents" method="handleMessage" ref="momadapter" />
<bean id="momadapter" class="my.project.mom.EventSendingMessageHandler" />
<!-- Logging -->
<int:outbound-channel-adapter channel="loggableevents" ref="loggingadapter" method="handleMessage" />
<bean id="loggingadapter" class="my.project.logging.EventLoggingHandler" />
<int:gateway id="eventgateway" service-interface="my.project.mom.EventGateway" default-request-channel="outgoingevents" />
我使用网关是为了方便,直接访问通道会更好吗?