jBPM进程同步

问题描述 投票:0回答:1

同一进程的多个实例如何在不相互干扰的情况下彼此相邻?

我有这个业务流程模型,其中基础工作流需要决定需要启动哪个其他工作流。此基本流程将在评估时发送一些信号,以启动其他子进程。在执行这些子进程期间,某些子进程需要等待其他子进程完成。因此我目前正在使用中间抛出和捕获信号来实现某种同步机制。问题是每当发送某个信号时,所有侦听此信号的进程都会继续独立于它们运行的​​实例。我希望只有当这些子进程从最初启动它们的进程收到与Java EE应用程序中的多用户并发环境相当的信号时,才能继续这些子进程。

换句话说,我有两个问题:1。创建这种同步机制以使用jBPM模拟多用户并发环境的最佳方法是什么? 2.如何以隔离的方式创建多个流程实例?我尝试使用运行时策略。单身人士显然不是理想的行为。当我使用流程实例时,基本流程发送信号时不会启动其他流程。使用case作为运行时策略时也是如此。

由于我是BPM的新手,我希望我的方法完全错误,请在适用时随意提出更好的方法。

编辑:为了澄清一些事情,我添加了示例模型的屏幕截图The base process第一个过程是通过创建流程实例并使用jBPM业务中心启动它来启动的。中间信号应触发下面的子进程,然后等待此子进程完成其任务。

The subprocess

子进程只是等待一段时间,然后触发一个完整的信号,该信号应由上述过程捕获。

单例运行时策略导致基本流程实例由任何已完成的子流程触发,正如预期的那样,因为每个流程实例都在相同的上下文中运行。 per_process_instance似乎触发了子进程,但是在完成之后,基本进程不会接收子进程发送的信号。

jbpm
1个回答
0
投票

你使用什么运行时策略?默认情况下,jBPM使用单例策略。请使用每个process_instance运行时策略在流程实例之间进行隔离。

© www.soinside.com 2019 - 2024. All rights reserved.