Hi all I have a requirement as below: In here i have two process which send two different signals, When one signal has been started, it will wait (by a system task) until the other signal also be started then two signal will join to do another logic. Signal 1 and Signal 2 can be started randomly. If i implement like above picture, the system task will not join to continue when two signals has started already, i guess it's because of there is two different cases. Am i correct? Another approach could be using a boundary signal event. But is there any other approaches which is better than it on ivy? i see in ivy we also has other elements like wait, Call & Wait,... Can i apply it for this requirement. Thanks a lot asked 29.11.2016 at 06:59 trungdv |
There is no solution out of the box yet. So you have to solve it by yourself. One solution could be to work with a joinging-key. Every Case which has to be finished before a “Process X” can be started is tagged with this joining key. So the “Process X“ can check if there exists running cases with this “joining-key” and will not start until there exists none. The ‘joining-key’ can be created by the initial signal, which creates the parallel cases or has to depend on this case, so that every signaled process use the same 'joining-key'. The below example illustrates this use case. I will come back to this question on monday with some further details. And hopefully there is a easier solution to solve such use cases. But to be honest, I think this is a miss usage of signals... answered 01.12.2016 at 16:17 Flavio Sadeghi ♦♦ |
You can do this in pure java with a CountDownLatch. Inside the "join tasks" script you a Java class with a static method that does the countDown and await. If you want it per user id, have a map of CounDownLatches. answered 22.03.2018 at 10:26 adamf |
Once you sign in you will be able to subscribe for any updates here
By RSS:Markdown Basics
Tags:
Asked: 29.11.2016 at 06:59
Seen: 2,941 times
Last updated: 22.03.2018 at 10:26