Spring integration Spring集成网关线程是否已释放 公共接口测试服务{ 作废定单(下单); } ....

Spring integration Spring集成网关线程是否已释放 公共接口测试服务{ 作废定单(下单); } ....,spring-integration,Spring Integration,此链中有两条路径-成功路径移动到通道\默认值,错误路径移动到空通道 此网关是否会导致内存泄漏。我怎么检查?是否有任何方法可以确保为处理网关请求而启动的线程在一段时间后释放。如果通道chainC的下游流可能不会返回回复,则需要设置回复超时来释放线程,否则线程将挂起等待永远不会出现的回复 只要该子流中没有异步切换,就可以安全地设置reply timeout=“0”,因为在这种情况下,计时器在子流完成之前不会启动 如果chainC总是返回一个结果或异常,则该配置不存在内存泄漏的可能性。顺便说一句,这里

此链中有两条路径-成功路径移动到通道\默认值,错误路径移动到空通道


此网关是否会导致内存泄漏。我怎么检查?是否有任何方法可以确保为处理网关请求而启动的线程在一段时间后释放。

如果通道
chainC
的下游流可能不会返回回复,则需要设置
回复超时来释放线程,否则线程将挂起等待永远不会出现的回复

只要该子流中没有异步切换,就可以安全地设置
reply timeout=“0”
,因为在这种情况下,计时器在子流完成之前不会启动


如果
chainC
总是返回一个结果或异常,则该配置不存在内存泄漏的可能性。

顺便说一句,这里习惯于接受(可能是向上投票)解决您问题的答案-我看到您正在使用我对其他问题建议的解决方案。感谢Gary让我知道,我是这个论坛的新手。Reply-timeout是线程等待链回复的时间,之后它将被释放。我说得对吗?Reply timeout=0表示它将一直等待响应,并且从不超时,因此在没有响应时不会释放。否;“0”表示完全不等待(线程返回网关后)。默认情况下,它无限期地等待(-1)。在异步子流的情况下会发生什么,子流不返回时没有计时器启动?
<gateway id="testService" service-interface="org.example.TestService"
         default-request-channel="requestChannel"/>

public interface TestService {
     void placeOrder(Order order);
 }

<int:router input-channel="requestchannel" expression="payload.name">
    <int:mapping value="foo" channel="channel_one" />
    ....
</int:router>

<int:chain input-channel="channel_one" output-channel="channel_default" >
        <int:gateway request-channel="chainC" error-channel="errChannel"/>
    <int:filter expression="headers['Release'] != null" discard-channel="nullChannel"/>
</int:chain>