2016-08-07 20 views
0

In der aktuellen Implementierung der Remote-Client-API von JBPM, wenn ich einen Prozess starte, sendet JBPM die Antwort sofort nach dem Prozess mit der Prozessinstanz-ID & Prozessstatus, der tatsächlich im aktiven Zustand ist, aber ich versuche, die Remote-API zu machen Client wartet, bis die Prozessausführung über & ist, in der Antwort sollte es angeben, dass der Prozess abgeschlossen ist. Ist es möglich, ohne Thread-Schlaf-Methoden?Wie wird JBPM 6.x remote API erst reagiert, wenn die Prozessausführung abgeschlossen ist?

Antwort

0

AFAIK der Remote-Aufruf zum Starten einer neuen Prozessinstanz wird zurückgegeben, sobald der Prozess safe point erreicht und es keine Möglichkeit gibt, dieses Verhalten zu ändern.

Es gibt jedoch viele Möglichkeiten, um benachrichtigt zu werden, wenn die Prozessausführung abgeschlossen ist. Meiner Meinung nach ist die eleganteste, Signal Ende Ereignis in Ihrer Prozessdefinition zu verwenden und es zu konfigurieren, um zu verwenden. Sie können dann die KIE.SIGNAL JMS-Warteschlange abonnieren und auf Ihr spezifisches Signal warten, das das Ende der Prozessausführung anzeigt. Es wäre wahrscheinlich eine gute Idee, KIE.SIGNAL ein Thema statt einer Warteschlange zu machen, damit Sie keine anderen externen Signale in Ihren Prozessen verlieren. Vielleicht gibt es eine bessere Lösung, aber das ist die beste, an die ich gerade denken kann.

BTW, welche Remote-Client-API meinen Sie? Der in KIE Workbench oder KIE Server? Wenn Sie die vorherige verwenden, würde ich empfehlen, zu KIE Server zu wechseln, da dies die empfohlene Methode zum Ausführen von Prozessen ist. Beachten Sie, dass es in der KIE Workbench im kommenden jBPM 7 keine jBPM-Laufzeit geben wird (siehe JBPM-5071), und Sie müssen dann trotzdem zu KIE Server wechseln.