2010-07-19 3 views
1

J'ai un flux très simple, un message JMS démarre un processus qui reçoit une liste d'objets. Un foreat itère à travers cette liste et envoie un message JMS au composant pour traiter l'objet dans la liste. Ce composant doit renvoyer une notification d'achèvement au processus de flux afin qu'il puisse continuer. Est-ce que quelqu'un a une idée de comment cela peut-il être réalisé?Comment puis-je continuer un processus Drools Flow lorsque je reçois un message JMS?

Merci.

Répondre

1

Comment implémentez-vous l'envoi de ce message? Utiliser un noeud d'élément de travail personnalisé? Je vois deux options:

  • si vous attendez toujours un résultat message JMS, vous pouvez avoir votre gestionnaire d'élément de travail envoyer le message JMS lorsque le nœud d'élément de travail est déclenché, mais seulement compléter l'élément de travail lorsque le résultat attendu message est arrivé, cela ne fera que continuer le flux si le message de résultat a été reçu (et vous pouvez par exemple envoyer l'ID de l'élément de travail comme paramètre de contexte dans votre message afin de savoir quel élément de travail compléter si le résultat retour)

  • Si vous souhaitez également gérer des messages JMS plus inattendus (pas nécessairement le résultat d'un premier message JMS de requête), vous pouvez utiliser un nœud d'événement pour cela et avoir un écouteur JMS qui convertit les messages JMS entrants (d'un type spécifique) en invocations signalEvent (..), qui continueront ensuite le flux du noeud d'événement vers l'avant.

Kris

Questions connexes