网关 default-reply-timeout 没有效果,仍然等待回复(Spring 集成)
Gateway default-reply-timeout has no effect and still waits for reply (Spring Integration)
我一直在尝试 Spring 集成中网关的回复超时,但它在我使用的以下配置中不起作用:
<int:gateway id="TrailerGateway" service-interface="com.12lmdk.gateways.TrailerGateway"
default-request-channel="trailerChannel" default-reply-timeout="5000"/>
<int:channel id="trailerChannel" />
<int:service-activator input-channel="trailerChannel"
ref="trailerService" method="getTrailer"/>
我在一个 Whosebug 问题中读到,我应该在服务激活器的网关和输出通道上提供一个回复通道,并且该通道应该是可轮询的,所以我也试过了
<int:gateway id="TrailerGateway" service-interface="com.12lmdk.gateways.TrailerGateway" default-reply-channel="trailerOutputChannel" default-reply-timeout="5000"/>
<int:channel id="trailerChannel" />
<int:channel id="trailerOutputChannel" >
<int:queue/>
</int:channel>
<int:service-activator input-channel="trailerChannel" output-channel="trailerOutputChannel" ref="trailerService" method="getTrailer"/>
这仍然无效,回复超时无效。 (我通过在服务激活器访问的方法之一中放置 10 秒的 Thread.sleep 来测试它)
网关仍在等待服务激活器的回复,这不是我所期望的。
由于超时,如何从网关产生异常甚至空响应???
直到线程 returns 到网关时计时器才会启动。它旨在用于调用线程将工作交给另一个线程时使用,例如 QueueChannel
或 ExecutorChannel
。当调用线程returns到网关时,定时器启动。
我一直在尝试 Spring 集成中网关的回复超时,但它在我使用的以下配置中不起作用:
<int:gateway id="TrailerGateway" service-interface="com.12lmdk.gateways.TrailerGateway"
default-request-channel="trailerChannel" default-reply-timeout="5000"/>
<int:channel id="trailerChannel" />
<int:service-activator input-channel="trailerChannel"
ref="trailerService" method="getTrailer"/>
我在一个 Whosebug 问题中读到,我应该在服务激活器的网关和输出通道上提供一个回复通道,并且该通道应该是可轮询的,所以我也试过了
<int:gateway id="TrailerGateway" service-interface="com.12lmdk.gateways.TrailerGateway" default-reply-channel="trailerOutputChannel" default-reply-timeout="5000"/>
<int:channel id="trailerChannel" />
<int:channel id="trailerOutputChannel" >
<int:queue/>
</int:channel>
<int:service-activator input-channel="trailerChannel" output-channel="trailerOutputChannel" ref="trailerService" method="getTrailer"/>
这仍然无效,回复超时无效。 (我通过在服务激活器访问的方法之一中放置 10 秒的 Thread.sleep 来测试它) 网关仍在等待服务激活器的回复,这不是我所期望的。
由于超时,如何从网关产生异常甚至空响应???
直到线程 returns 到网关时计时器才会启动。它旨在用于调用线程将工作交给另一个线程时使用,例如 QueueChannel
或 ExecutorChannel
。当调用线程returns到网关时,定时器启动。