Java 如何使用Camunda指定并行网关中的执行顺序?

Java 如何使用Camunda指定并行网关中的执行顺序?,java,testing,integration-testing,camunda,Java,Testing,Integration Testing,Camunda,对于我的集成测试,我想指定并行网关的执行路径中执行的确切顺序。我不希望并行路径同时执行,而是按顺序执行。 有没有办法通过卡蒙达实现这一点 我已经尝试通过延迟模拟服务调用的响应来降低一条路径的速度,但是由于模拟服务调用并不总是被使用,所以这个解决方案并不总是有效的 暂停一条路径的执行,直到另一条路径的执行完成即可。这是不可能的。在camunda发动机中,无法保证在并行网关上采用哪个顺序流 无论如何,在camunda引擎中并没有真正的并发,因为每个流都是顺序执行的(流程实例是单线程的)。这意味着,如

对于我的集成测试,我想指定并行网关的执行路径中执行的确切顺序。我不希望并行路径同时执行,而是按顺序执行。 有没有办法通过卡蒙达实现这一点

我已经尝试通过延迟模拟服务调用的响应来降低一条路径的速度,但是由于模拟服务调用并不总是被使用,所以这个解决方案并不总是有效的


暂停一条路径的执行,直到另一条路径的执行完成即可。

这是不可能的。在camunda发动机中,无法保证在并行网关上采用哪个顺序流

无论如何,在camunda引擎中并没有真正的并发,因为每个流都是顺序执行的(流程实例是单线程的)。这意味着,如果执行第一个流,它将一直执行,直到达到保存点(等待状态)并提交事务为止。例如,这可能是一个用户任务或标记为asyncBefore或asyncAfter的任何其他活动

到达该等待状态后,执行另一个序列流


有关camunda中事务的更多信息,请阅读有关

的文档。如果作业执行器将所有传出流标记为异步执行,则可以通过启用基于优先级的作业获取来实现这一点(
ProcessEngineConfiguration
上的
jobExecutorAcquireByPriority
属性)并为这些任务分配明确的优先级

用户指南中记录了这一点,网址为