クラス FileReadingMessageSource

実装済みのインターフェース一覧:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanLifecycleMessageSource<FileSE>IntegrationPatternNamedComponentIntegrationInboundManagementIntegrationManagementManageableLifecycle

@DeprecatedSE(forRemoval=true, since="7.0") public class FileReadingMessageSource extends FileReadingMessageSource
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
7.0 が FileReadingMessageSource に有利であるため
ファイルシステムディレクトリからメッセージを作成する MessageSource。特定のファイルのメッセージを防ぐために、FileListFilter を指定できます。デフォルトでは、XML または DSL で構成する場合、AcceptOnceFileListFilter が使用されます。これにより、ファイルがディレクトリから 1 回だけ取得されるようになります。

ファイルの読み取りに関する一般的な問題は、準備が整う前にファイルが検出される可能性があることです。デフォルトの AcceptOnceFileListFilter はこれを防ぎません。ほとんどの場合、ファイル書き込みプロセスが読み取りの準備ができたらすぐに各ファイルの名前を変更すると、これを防ぐことができます。デフォルトの AcceptOnceFileListFilter で構成された、準備ができている(たとえば、既知のサフィックスに基づく)ファイルのみを受け入れるパターンマッチングフィルターを使用すると、これが可能になります。

外部 DirectoryScanner を使用する場合は、FileReadingMessageSource のインスタンスではなく、FileLocker および FileListFilter オブジェクトを外部 DirectoryScanner に設定する必要があります。それ以外の場合は、IllegalStateExceptionSE が発生します。

ComparatorSE を使用して、PriorityBlockingQueueSE 内のファイルの内部順序を確認できます。これは ResequencingMessageGroupProcessor と同じ保証を提供しませんが、ファイルの書き込みとダウンストリームの失敗がまれな場合はそれで十分かもしれません。

FileReadingMessageSource は、receive() の同時呼び出しとメッセージ配信コールバックで完全にスレッドセーフです。

作成者:
Iwein Fuld, Mark Fisher, Oleg Zhurakousky, Gary Russell, Artem Bilan, Steven Pearce, Patryk Ziobron
  • コンストラクターの詳細

    • FileReadingMessageSource

      public FileReadingMessageSource()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      無制限の容量の自然に順序付けられたキューを使用して FileReadingMessageSource を作成します。
    • FileReadingMessageSource

      public FileReadingMessageSource(int internalQueueCapacity)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      指定された容量の制限付きキューを使用して FileReadingMessageSource を作成します。これは、大きなディレクトリから読み取るときに、このコンポーネントのメモリフットプリントを削減するために使用できます。
      パラメーター:
      internalQueueCapacity - 内部的に受信するファイルをキャッシュするために使用されるキューのサイズ。このキューは、ディレクトリスキャンを最適化するために大きくすることができます。scanEachPoll を false に設定し、キューのサイズを大きくすると、新しいディレクトリリストが実行される前に、キューは一度いっぱいになり、その後完全に空になります。これは、ディレクトリ内の多数のファイルのスキャンを減らすのに特に役立ちます。
    • FileReadingMessageSource

      public FileReadingMessageSource(@Nullable ComparatorSE<FileSE> receptionOrderComparator)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      渡された ComparatorSE で順序付けされた PriorityBlockingQueueSE を使用して FileReadingMessageSource を作成します。

      使用するキューのサイズは、すべてのファイルを並べ替えるために、入力ディレクトリ内のすべてのファイルを保持するのに十分な大きさである必要があります。キューのサイズを制限することは、順序付けと相互に排他的です。同時アクセスでは、ファイル配信のオーダーについて保証することはできません。

      パラメーター:
      receptionOrderComparator - 内部キュー内のファイルを順序付けるために使用されるコンパレータ