-1

我有一个包含两个步骤的工作春季批处理作业,我想在 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 使用 DefaultFtpSessionFactory 配置了 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 集成 2.2.2 和 spring batch 2.1.19

4

1 回答 1

1

您可以使用RequestHandlerRetryAdvice,如此处所述... http://static.springsource.org/spring-integration/reference/html/messaging-endpoints-chapter.html#message-handler-advice-chain

这里有一个示例... https://github.com/SpringSource/spring-integration-samples/tree/master/intermediate/retry-and-more

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

于 2013-04-09T15:46:24.863 回答