当前位置: 首页 > 知识库问答 >
问题:

jBPM进程同步

穆景辉
2023-03-14

如何使同一进程的多个实例在不相互干扰的情况下并排运行?

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

换句话说,我有两个问题:

  1. 创建这种同步机制以模拟使用jBPM的多用户并发环境的最佳方法是什么?
  2. 如何以独立的方式创建多个流程实例?我试着玩运行时策略。单身显然不是想要的行为。当我使用process实例时,当基进程发送信号时不会启动其他进程。使用case作为运行时策略时也是如此。

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

子进程只是等待一段时间,然后发出一个完整的信号,上面的进程应该捕捉到这个信号。

由于每个流程实例都在相同的上下文中运行,因此singleton运行时策略导致基本流程实例由任何已完成的子流程触发。per_process_instance似乎触发了子进程,但在完成后,基进程不接收子进程发送的信号。

共有1个答案

施默
2023-03-14

您使用的是什么运行时策略?jBPM采用单例策略。请使用per_process_instance运行时策略在进程实例之间进行隔离。

 类似资料:
  • 我目前与JBpm Kie合作。我们有带有自定义工作项(和自定义工作项处理程序代码)的进程。我们发现调试代码非常困难,因为我们的工作项处理程序主要是异步的,并且是通过RESTAPI完成的。我了解到,可以通过maven存储库向KIE引擎提供workItem处理程序(我对maven很陌生)。我很想知道我是否可以将我的PC配置为Maven存储库,并根据jBpm进程的请求调试代码。有可能吗?

  • 我有一个web应用程序,我想使用jBPM6进行流程管理。 我正在eclipse上设计流程,一切正常,但现在我想在Guvnor或jBPM控制台上查看我的流程,但我无法在那里部署流程。。。 我知道这在jBPM5上是可能的,但是我找不到在6上做到这一点的方法......你能帮我吗?

  • 在业务规则任务之后,我放置了一个简单的脚本任务: 我现在得到的输出是(注意:MyCustomObject不重写toString): 内存中对象的值:MyCustomObject@XYZ 欢迎提出任何建议。

  • 我的要求是,触发第二条规则,然后停止进程而不触发第三条规则

  • 1-工序A N-过程B 我有1个A进程和N个B进程。进程将A数组的元素写入共享变量x。然后所有N个B个进程都必须读取数据并将其存储到本地数组中。当所有的N B进程都存储它时,那么一个进程最终可以将数组的下一个元素分配给变量x。 我如何使用信号量来同步它?最后一个读取数据的进程B应该向写信号量发出信号,以便A进程写入下一个元素。我怎样才能知道每个B进程何时读取数据?

  • 我可以创建和提交从Eclipse到Drool Guvnor的流程。但当我进入JBPM控制台时,这些进程并不存在。为什么? 好的,我知道我必须构建包,但是在成功构建包之后,我的流程仍然不会出现在jbpm控制台的流程概述中。可能是因为我的项目不在defaultPackage中?我尝试在defaultPackage中开发其他一些测试项目,它们看起来很好。我如何告诉Guvnor/console在不同的包中