Je veux faire un flux où: p>
Comment puis-je faire le premier point? p>
3 Réponses :
Utilisation d'un composant de quartz - déclenchez votre écoulement à l'intervalle souhaité. En savoir plus à ce sujet ici: http://www.mulesoft.org/documentation/display/current/quartz + Transport + référence P>
Lorsqu'il est déclenché - écrivez le code Java qui compare les deux répertoires et trouve des paires de fichiers entre les deux. P>
En haut de la tête, je ne suis pas sûr que s'il existe un moyen de définir un filtre de fichiers entrant de manière dynamique. Sinon, on pourrait toujours gérer tout le processus en Java; Lisez les fichiers, convertir en byte Array, propagez enfin le message sur le script groovy. P>
Vous pouvez avoir deux points de terminaison entrants de fichier, un pour chacun des fichiers que vous attendez. Lorsque votre flux lit les fichiers, il copie le fichier dans un autre répertoire. Si l'autre fichier était déjà traité et déplacé dans le répertoire (vous pouvez suivre cela à l'aide d'une variable dans un magasin d'objet) Vous économisez avec nom.Ready et déplacez le fichier précédemment déplacé en nom2.Ready. P>
Vous avez un troisième flux avec un fichier d'extrémité entrant de fichier qui se lit à partir de ce répertoire à l'aide de *. Patron de caractères génériques. Puis utilisez module demandeur pour charger l'autre fichier dans une variable. P>
Je sais que ce n'est pas une solution élégante.
Vous pouvez regrouper les fichiers en fonction de leur "nom de base" (c.-à-d. Prenez le nom du fichier sans l'extension), puis traiter chaque fichier dans l'ensemble agrégé.
Agrégation pourrait être effectuée à l'aide d'un agrégateur de collection ou d'un Agregistrateur personnalisé, voici un exemple de chacun: p>
à l'aide d'un collection-agrégateur: p> Utilisation Un agrégateur personnalisé (vous aurez besoin d'une classe Java personnalisée): p> et il s'agit d'une implémentation possible pour l'agrégateur personnalisé (il pourrait être plus élégant: P>
p>
Je suis confronté à une situation similaire. Curieux comment l'avez-vous résolu