如何使JBPM 6.x remote api仅在流程执行完成时响应?

时间:2016-08-07 15:36:44

标签: jbpm

在JBPM的远程客户端API的当前实现中,如果我启动一个进程,JBPM在进程启动后立即发送响应,流程实例id&处于活动状态的进程状态,但我正在尝试使远程API客户端等待,直到进程执行结束。在响应中,它应该声明该过程已完成。没有使用线程睡眠方法有可能吗?

1 个答案:

答案 0 :(得分:0)

AFAIK启动新流程实例的远程调用会在进程到达safe point后立即返回,并且无法更改此行为。

但是,有很多方法可以在流程执行完成后获得通知。在我看来,最优雅的是在流程定义中使用信号结束事件并将其配置为使用external signalling。然后,您可以订阅 KIE.SIGNAL JMS队列,并等待指示流程执行结束的特定信号。将 KIE.SIGNAL 作为主题而不是队列可能是一个好主意,这样您就不会丢失进程中的其他外部信号。也许有一个更好的解决方案,但这是我现在能想到的最好的解决方案。

BTW,您指的是哪个远程客户端API? KIE WorkbenchKIE Server中的那个?如果您使用前一个,我建议切换到KIE服务器,因为它是执行进程的推荐方法。请注意,在即将到来的jBPM 7中,KIE Workbench中将没有jBPM运行时(请参阅JBPM-5071),然后您还需要切换到KIE服务器。