2014-10-12 65 views
0

目前,我有一个基本的FTP入站通道适配器,以轮询重试Spring集成FTP入站通道适配器

<int-ftp:inbound-channel-adapter id="ftpInboundChannelAdapter"> 
     <int:poller cron="#{fooProperties['foo.ftp.cron']}" max-messages-per-poll="-1" /> 
</int-ftp:inbound-channel-adapter> 

的cron是一旦在特定的时间一天配置。

然而,有时,我们连接FTP服务器将抛出一个错误,例如

org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection. 

在这种情况下,我们谨以“repoll”的次配置量。

我读了关于int:request-handler-advice-chain,但它看起来不像你可以在FTP适配器的轮询器上使用它。

我使用SI 2.2.6,但如果需要的话

回答

0

您可以使用自定义Trigger豆,而不是一个cron触发的可能升级。

将一个error-channel添加到轮询器以捕获该异常,并在错误通道流上设置触发器bean中的某个状态以发生错误。

如果没有发生错误,则在调用nextExecutionTime()时返回明天要运行的时间。

如果发生错误,请返回想要重试的时间(并重置错误状态)。

相关问题