J'utilise le séparateur pour diviser les messages et les transmettre aux autres canaux respectifs pour traitement ultérieur. Mais je voulais envoyer la sortie du séparateur à un canal qui l'écrira dans un autre fichier. Également voulu envoyer la sortie du séparateur à un autre canal qui effectuera une tâche.Sortie du répartiteur de ressort sur plusieurs canaux
Je suis capable de faire la même chose en utilisant ce qui suit, mais cela ne semble pas fonctionner si je n'ai pas réussi à traiter l'un quelconque des enregistrements séparés dans channel2. Il arrête le processus et n'écrit pas les enregistrements restants dans channel1.
<int:splitter input-channel="inputchannel" ref="splitter" method="doSplit" output-channel="routingChannel"/>
<int-recipient-list-router id="customRouter" input-channel="routingChannel"
<int:recipient channel="channel1"/> <!--Write to file-->
<int:recipient channel="channel2"/> <!-- logic to process -->
</int:reciepient-list-router>
Y a-t-il un autre moyen de le faire passer aux canaux séparés indépendamment?
Merci pour votre réponse Artem. La chaîne channel1 est complétée si une exception est survenue dans channel2 si nous ajoutons ignore-send-failures .. Mais alors le contrôle ne va pas au canal d'erreur .. :( – kattoor
Ok. Vous pouvez placer '' channel entre 'splitter' et 'router', et ajoutez' error-channel' au ' 'du routeur, mais ensuite' ignore-send-failure' devrait être éteint.Ainsi, à travers la file d'attente, vous libérez le thread de séparation des exceptions et il continuer à émettre –
Merci beaucoup Artem. J'ai essayé avec l'exécuteur de tâches comme ci-dessous et cela a fonctionné :) Hope et faire le même travail? ' int: canal> ' –
kattoor