Spring batch 尝试使用ftp:outbound通道通过spring integration发送文件

Spring batch 尝试使用ftp:outbound通道通过spring integration发送文件,spring-batch,spring-integration,spring-retry,Spring Batch,Spring Integration,Spring Retry,我有一个包含两个步骤的spring批处理作业,我想在ftp发送步骤中添加一个重试逻辑 第一步从数据库读取并输出xml文件 第二步使用spring集成将此文件发送到ftp主机 第二步配置如下 <step id="sendFileByFtp" next="moveResource"> <tasklet ref="ftpJobTasklet" /> </step> <bean id="ftpJobTasklet" class="com...Ftp

我有一个包含两个步骤的spring批处理作业,我想在ftp发送步骤中添加一个重试逻辑

  • 第一步从数据库读取并输出xml文件
  • 第二步使用spring集成将此文件发送到ftp主机
第二步配置如下

<step id="sendFileByFtp" next="moveResource">
     <tasklet ref="ftpJobTasklet" />
</step>
<bean id="ftpJobTasklet" class="com...FtpOutboundTasklet" scope="step">
    <property name="resource" ref="ypportal-siparis-outputFile"></property>
    <property name="ftpChannel" ref="ftpOutputChannel"></property>      
</bean>

ftpOutputChannel配置了一个使用DefaultFTPSSessionFactory的ftpClientFactory

<int:channel id="ftpOutputChannel"></int:channel>

<int-ftp:outbound-channel-adapter session-factory="ftpClientFactory" id="ftpOutbound" channel="ftpOutputChannel" remote-directory="inbox" auto-create-directory="true" temporary-remote-directory="tmp" >
</int-ftp:outbound-channel-adapter>

我想在第二步中添加重试逻辑,这将在与远程ftp主机的连接失败时重试/恢复


使用spring integration 2.2.2和spring batch 2.1.19,您可以使用
RequestHandlerRetryAdvice
,如下所述

这里有一个样本。。。

它显示了重试的各种配置(指数退避等)