Hi all

I have a requirement as below: alt text

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's gravatar image

accept rate: 52%

edited 29.11.2016 at 07:00

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.

Join Signals with a joining-key

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%20Sadeghi's gravatar image

Flavio Sadeghi ♦♦
accept rate: 75%

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's gravatar image

accept rate: 25%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 29.11.2016 at 06:59

Seen: 1,910 times

Last updated: 22.03.2018 at 10:26