新規ファイルの作成時またはファイルの変更時にフローをトリガする方法

ファイル、FTP、および SFTP コネクタでは、ディレクトリをポーリングして、作成または更新されたファイルがないかどうかを確認するリスナ (Studio および Design Centerでは On New or Updated file と呼ばれる) が提供されます。見つかったファイルごとにメッセージが生成されます。

この機能の重要な部分は、ファイルが新規であることをどのように判別するかです。この判別には、次の 3 つの戦略があります。

  • autoDelete パラメータを true に設定する。この設定では、各ファイルは処理後に削除されるため、次回のポーリングで見つかったすべてのファイルが新規になります。

  • moveToDirectory パラメータを設定し、処理された各ファイルを処理後に別のディレクトリに移動する。この手順の効果は autoDelete と同じですが、ファイルは削除されません。

  • watermark パラメータを使用して、前回のポーリングの実行後に作成または更新されたファイルのみを選択する。

  • マッチャーを使用して、ファイルを絞り込む。

リスナ

リスナは FTP、SFTP、およびファイルコネクタで同様に機能します。ただし、各コネクタで使用する XML 要素は異なります。

例: ファイルリスナ (新規ファイルトリガ)
<flow name="onNewFile">
    <file:listener config-ref="file" directory="test-data/in" autoDelete="true">
      <scheduling-strategy>
        <fixed-frequency frequency="1000"/>
      </scheduling-strategy>
    </file:listener>

    <flow-ref name="processFile" />
</flow>

透かし

ファイルコネクタでは、透かし戦略を CREATION_TIMESTAMP または MODIFIED_TIMESTAMP の 2 つの異なるモードで使用できます。戦略は、ファイルの絞り込みを作成時間に基づいて実行するか、変更時間に基づいて実行するかによって異なります。

例: ファイルリスナを使用した透かし
<file:listener doc:name="On New File"
  config-ref="File_Config1"
  watermarkMode="CREATED_TIMESTAMP">
    <scheduling-strategy >
      <fixed-frequency />
    </scheduling-strategy>
</file:listener>

反復可能ストリーム

List 操作では、Mule 4 で導入された反復可能ストリーム機能が使用されます。この操作ではメッセージのリストが返されます。各メッセージはリスト内のファイルを表し、ファイルへのストリームを保持します。デフォルトでは、ストリームは反復可能です。

このトピックについての詳細は、Mule 4 でのストリーミングを参照してください。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub