有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重试Spring集成FTP入站通道适配器

我已经配置了一个基本的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,但如果需要,可以升级


共 (1) 个答案

  1. # 1 楼答案

    您可以使用自定义Triggerbean而不是cron触发器

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

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

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