2016-12-12 7 views
1

ファイル名を順番にループするファイルシステムからFTP経由でファイルをプルしています。たとえば、繰り返しパターンファイルのFtpPersistentAcceptOnceFileListFilter

abc.000.txt 
abc.001.txt 
abc.002.txt 
... 
abc.999.txt 

abc.000.txtに戻ります。

私はFtpPersistentAcceptOnceFileListFilterをmetadataStoreにredisで使用しています。 abc.999.txtの後の次のファイルとしてabc.000.txtを期待する方法を教えてください。

マイ設定:

@Bean 
public FtpPersistentAcceptOnceFileListFilter ftpPersistantFilter() { 
    return new FtpPersistentAcceptOnceFileListFilter(metadataStore(), "ftpPersistentAcceptOnce"); 
} 

@Bean 
public Expression remoteDirectory() { 
    return new LiteralExpression(this.remoteDirectory); 
} 

@Bean 
public IntegrationFlow ftpInboundFlow() { 
    DateTime currentUtcDay = new DateTime(DateTimeZone.UTC); 
    return IntegrationFlows 
      .from(s -> s.ftp(ftpSessionFactory()) 
          .preserveTimestamp(true) 
          .remoteDirectoryExpression(remoteDirectory()) 
          .filter(ftpPersistantFilter()) 
          .localFilename(f -> (currentUtcDay.toString("YYYYMMdd")) + "." + f) 
          .localDirectory(new File(this.localDirectory)), 
        e -> e.id("ftpInboundAdapter").autoStartup(true)) 
      .channel(MessageChannels.queue("ftpInboundResultChannel")) 
      .get(); 
} 

答えて

0

私は、あなたが「次のファイルとしてabc.000.txt期待」によって何を意味するかわかりません。フィルタには一連のファイルがあるという知識はありません。

ただし、最後に変更されたファイルのタイムスタンプが変更される限り、新しいファイルがフィルタを通過します。

+0

おそらく私の質問に答えます。最初のシーケンス番号に戻るまでに約2日かかりますので、私はそれを実行させて、私が期待した結果が得られるかどうかを確認します。 – brentlemons