2017-03-24 7 views
0

私はいくつかのファイルを引き出し、別の場所にドロップするラバ・リクエスタモジュールを使用していミュールリクエスタモジュール引っ張っていないラバ・フローのmiddileで複数のファイル

<mulerequester:request 
resource="file://D:/CITI/PHACE2/IRM/processing/outbound/zip-in?connector=empty-conn" 
    doc:name="Mule Requester"/> 
<file:outbound-endpoint path="${zip.file.out.path}" 
    outputPattern="#[message.inboundProperties.originalFilename]" 
    responseTimeout="10000" doc:name="File" connector-ref="File"/> 

私は上記の中で3つのファイルを持っていますフォルダ。例えば、A.zip、B.zipおよびC.zipである。 A.zipが宛先フォルダにドロップされています。

また、ファイルパスではなく、mulerequester resourceにファイルインバウンドコネクタ名を追加してみました。それも働かなかった。

+0

muleリクエスタで利用できる「**リクエストコレクション**」操作を使用してみてください。例: RamakrishnaN

答えて

0

File型のリソースを持つMuleリクエスタは、コレクションオプションで正しく動作しません。彼らがこれに対処する脚注がありますが、それをしないと言っていることは明白ではありません。

この問題は、リソースフェッチのメカニズムとタイミングのために発生します。これらのリソースの基本ライブラリには、リソースの要求方法に従って使用される2つのメカニズムがあります。インバウンドエンドポイントでは、ポーリングメカニズムが使用されます。ポーリングメカニズムは、ポーリングと一致するすべてのファイルをリストとして返します。これらのファイルは、個別の検索としてスレッドされます。リクエスターが使用するメソッドでは、1つのファイルしか返さない単一の照会です。

コレクションオプションはリストを取得しますが、これはJMSキューのようなものには効果的ですが、ファイルには適しません。 JMSキューでは、要求時にリソースがキューから削除されるため、5またはすべてを要求すると、5またはすべてが取得されます。ただし、ファイルを使用すると、処理が完了するまでファイルがディレクトリから削除されないため、5つを要求すると5つのストリームが同じファイルに出力されるため、最初に見つかったストリームが返されるため、次の要求はそれを再び見つける。すべてを尋ねると(-1)、同じストリームを繰り返し送信する無限ループに入ります。

これは修正される可能性がありますが、リクエスタ全体の書き換えが必要になります。回避策は、ファイルが見つからなくなるまでリクエスト、処理、繰り返し、または使用可能なファイルのリストを取得するためのカスタムコードです。次に、それぞれの名前を要求する順序で名前を要求します。

関連する問題