複数のノードのクラスターで実行されているスプリング統合アプリケーションがあります。NFS ドライブはすべてのノードにマウントされ、すべてのノードから読み取り可能です。
file:inbound-channel-adapter
NFS には、 5 秒のポーリング間隔ですべてのノードによって監視されているフォルダーがあります。
問題は、1) 1 つのノードが他のノードによってピックアップされたファイルをピックアップしてはならないことです。
2) ファイルが 1 つのノードのスレッドによって取得された場合、ポーリング間隔の後に実行される 2 番目のスレッドはそれを取得すべきではありません AcceptOnceFileListFilter
。
すでに検討したオプションの 1 つ:
1) 一意のファイル名で DB にレコードを作成し、処理を開始する前に他のすべてのノードが同じ DB をチェックします。
NIOLocker をまだ検討する必要がありますが、このシナリオで信頼性と可能なオプションについていくつかの入力が必要です。