I’m trying to implement the following workflow:
there are 4 separate business tasks DB task, Level1 task, Level2 task and Result task. These tasks should be executed asynchronously in parallel.
Leve2 task should start by the following condition:
- Level1 task completed
OR - Specified timeout expired (timeout = 900 milliseconds)
Result task should start by the following condition:
- Level2 task completed
OR - Specified timeout expired (timeout = 3 seconds)
So I’ve made 4 subProcesses and added the following properties to each subProcess: camunda:asyncBefore=“true” camunda:exclusive=“false”
To implement the starting conditions (to start by timer or by signal) for both cases (Level2 startup and Result startup) I’ve used Event-Based Gateway followed by two events (timer event and signal catch event) that in its turn followed by Exclusive Gateway.
In the subProcesses there are service tasks to print when the subProcesses started and service tasks that do the main processing (emulated by cycle during desired time).
In the result I have two problems:
- All the tasks don’t start in parallel. First DB task, then Level1 task, then with significant delay Level2 Task.
- I can’t find any way to implement Timer Catch Event within milliseconds timeout value (my SLA is less than second).
I am beginner in Camunda so please advice what I did wrong?
Also I asked similar questions on Activiti forum because I tried to implement the same workflow using Activiti, but no luck yet.
Thank you,
Simon
testProcess.bpmn (35.8 KB)