对于我的集成测试,我想指定执行并行网关的执行路径中的确切顺序。我不希望并行路径同时执行但是顺序执行。 Camunda有没有办法实现这个目标?
我已经尝试通过延迟模拟服务调用的响应来减慢一条路径,但由于并不总是使用模拟服务调用,因此该解决方案并不总是有效。
暂停执行一条路径就足够了,直到另一条路径的执行完成为止。
答案 0 :(得分:1)
这是不可能的。在camunda引擎中,不能保证在并行网关上采用哪种顺序流。
无论如何,在camunda引擎中没有真正的并发性,因为每个流都是顺序执行的(流程实例是单线程的)。这意味着如果第一个流程被执行,则执行它直到达到保存点(等待状态)并且提交事务。例如,这可以是用户任务或任何其他使用asyncBefore或asyncAfter标记的Activity。
达到此等待状态后,将执行另一个序列流程。
有关camunda交易的更多信息,请阅读有关Transactions in processes
的文档答案 1 :(得分:0)
如果所有传出流都被作业执行程序标记为异步执行,则可以通过在jobExecutorAcquireByPriority
上启用基于优先级的作业获取(ProcessEngineConfiguration
属性)并为这些任务分配显式优先级来实现此目的