Spring integration 我可以在链中使用延迟器元素吗?

Spring integration 我可以在链中使用延迟器元素吗?,spring-integration,Spring Integration,我有以下配置: <jms:inbound-gateway request-channel="requestChannel" request-destination="requestQueue" default-reply-destination="replyQueue" connection-factory="connectionFactory"/> <

我有以下配置:

<jms:inbound-gateway request-channel="requestChannel"
                     request-destination="requestQueue"
                     default-reply-destination="replyQueue"
                     connection-factory="connectionFactory"/>

<chain input-channel="requestChannel">
   <transformer ref="xmlTransformer" method="fromXml"/>
   <service-activator ref="myService" method="service"/>
   <transformer ref="xmlTransformer" method="toXml"/>
   <!--<delayer id="replyDelayer" default-delay="1000"/>--> 
</chain> 

为了调试,我想推迟回复

没有延迟器,配置工作正常。当我添加延迟器时,重播不会到达回复目的地

这是延迟器的错误用法吗?在这种配置下,我没有收到任何xsd警告


提前谢谢。

刚刚测试了这个案例,对我来说效果很好

需要考虑的几点:

  • 默认情况下使用
    receiveTimeout=5000
    。然而,我看到您的
    仅延迟
    1000
    。所以,应该足够了

  • 如果您的延迟器使用persistent
    MessageStore
    ,您应该使用:

    <int:header-enricher>
        <int:header-channels-to-string />
    </int:header-enricher>
    
    
    
    replyChannel
    头也存储到数据库中。并从
    延迟任务中恢复它


否则,请分享并跟踪此事。

我没有为延迟者配置任何messageStore。在delayer元素中,我只有两个属性:defaultdelay和id。可能这个问题没有在最新版本中重现。我使用spring集成2.2.41。最好至少升级到最新的'3.0.6
。2.尝试执行相同的操作,但当
`超出