2014-10-12 70 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()時返回明天要運行的時間。

如果發生錯誤,請返回想要重試的時間(並重置錯誤狀態)。

相關問題