我在执行并发操作时遇到了 Camunda 并发问题。在多个请求的情况下,当我们设置一个具有多个实例的服务任务的变量时,在另一个服务任务中,我们得到的是部分数据。但是,在任何服务任务中获取 Camund 变量时,一次请求一个不会导致任何问题。
下面是我们的用例: 我们使用 rabbitMQ 进行消息传递。
1. 收到消息:在启动流程引擎的同时,使用队列中的消息并设置 Camunda 的所有变量。
注意:rabbitMQ 消费者的并发数为 5。
2. 任务 1:当我们向 rabbitMQ 生产者发出多个请求时,此服务任务没有获取所有变量,即使 rabbitMQ 消费者一次消费并发 5 个请求,但 Camunda 无法根据并发请求获取所有这些变量。
注意:一次一个请求是从 Camunda 变量中获取所有数据。
3. 任务 3:同样的问题也发生在任务 2 中。
这种行为是随机的,有时在任务 1 或任务 2 中,有时也可以正常工作。