Wie kann ich einen Drools-Flow-Prozess fortsetzen, wenn ich eine JMS-Nachricht erhalte?

StackOverflow https://stackoverflow.com/questions/3282933

  •  17-09-2020
  •  | 
  •  

Frage

Ich habe einen sehr einfachen Durchfluss, eine JMS-Nachricht startet einen Prozess, der eine Liste von Objekten erhält.Ein Foreacher itert durch diese Liste und sendet eine JMS-Nachricht an die Komponente, um das Objekt in der Liste zu verarbeiten.Diese Komponente muss eine Abschlussbenachrichtigung an den Durchflussprozess zurücksenden, damit er weiterführen kann.Hat jemand eine Vorstellung davon, wie dies erreicht werden kann?

danke.

War es hilfreich?

Lösung

Wie implementieren Sie das Senden dieser Nachricht?Verwenden eines benutzerdefinierten Knotenknotens?Ich sehe zwei Optionen:

    .
  • Wenn Sie immer eine Reser-JMS-Nachricht erwarten, können Sie Ihren Arbeitselement-Handler die JMS-Nachricht senden, wenn der Knoten des Arbeitselements ausgelöst wird, aber nur den Arbeitsposten vollständig ausfüllen, wenn die erwartete Ergebnisnachricht eingetroffen ist.Lassen Sie den Fluss nur fortfahren, wenn die Ergebnisnachricht empfangen wurde (und Sie können beispielsweise die Arbeitselement-ID als eine Art Kontextparameter in Ihrer Nachricht senden, sodass Sie wissen, welchen Arbeitselement abschließen, wenn das Ergebnis wiederkommt)

  • Wenn Sie auch mehr unerwartete JMS-Nachrichten abwickeln möchten (nicht unbedingt das Ergebnis einer ersten Anforderungs-JMS-Nachricht), können Sie einen Ereignisknoten dafür verwenden, und einen JMS-Listener, der eingehende JMS-Nachrichten übersetzt (vonein bestimmter Typ) zu SignalEvent (..) Invokationen, das dann den Fluss vom Ereignisknoten nach vorne fortsetzen wird.

kris

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top