2017-01-15 7 views
0

SFTPサーバーから一連のPDFおよびXMLファイルをダウンロードするためにスプリング統合を使用しています。このプロセスは、cronに基づくポーラーによってトリガーされます。私はすべてのXMLファイルが同じリモートディレクトリからPDFファイルの前に完全にダウンロードされることを確認する必要があります。 私は2つの異なるcronジョブを使用してこれらを起動したくありません。 どうすればこの問題を解決できますか?前もって感謝します。 (注:私は統合フレームワークを初めて使用しています)Spring統合によるFTPファイルのダウンロード順序

答えて

0

filter属性のカスタムFileListFilterを使用します(FTPの場合はFTPFile、SFTPの場合はパラメータ化されたジェネリックタイプの場合はLsEntry)。

filterFilesの方法では、候補ファイルリストをダウンロードしたい順にソートします。

+0

ありがとうございます。あなたのソリューションは、SFTPからインポートする前にファイルをソートするために働いていました。しかし、インポートした後、私は各ファイルのスプリングバッチジョブをトリガーしています。バッチ・ジョブはエグゼキュータのプールによって並列に実行されるため、その順序は維持されていないようです。エグゼキュータの数を1に減らすと、その注文は保持されます。 – Jino

+0

私はあなたが何を意味するか分かりません。対応するXMLが完全に到着するまでPDFをリリースしないと、処理オーダーはどのような違いがありますか? –

+0

迅速な対応に感謝します。私は自分のコードをチェックして、ソートされた注文がSFTPからチャンネルに渡った後も維持されていないように見えます。私は説明の中でコードの主要部分を貼り付けました。ここで何が間違っているのか教えてください。 – Jino

0

ディレクトリ内のファイル数をカウントし、これをループで使用することをお勧めします。 UNIXシステム上のファイルの数を確認するには、以下のコマンドを使用することができます。

ls -1fa | wc -l 

すべてXMLSをダウンロードした後、あなたは、PDFファイルのダウンロードを開始します別の方法をトリガすることができます。

関連する問題