-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document join behavior of fork
task
#1012
Comments
That is not possible. The flow is invalid as
That is not possible. The flow is invalid as As discussed in the past, you can only flow to a task that is located in the same scope. You cannot, from within a nested task flow to a upper level task. |
ok makes sense to me, should this be allowed? document: {}
do:
- forkExample:
branches:
- a:
do:
- a1: {}
- a2: {}
- b:
then: a
- d: {} |
ok perfect this basically handles all these cases 👍 I think we should then document the notion of a |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
fork
&join
Similar to
fork()
in programming there is an implicit notion ofjoin()
in the workflow DSL. Namely when all branches (of a non-competing fork) finish:The corresponding state diagram would look like this:
Here the first bar represent a
fork
and the second ajoin
. Taskd
would only run aftera
,b1
,b2
andc
have finished.However the current state of the specification does not enumerate all cases, or at least leaves a lot implicitly defined:
then
in neighboring branchThe following definition jumps from one (
b
) branch to another (a
):In my understanding this would execute task
a2
twice and proceed after both branches have finished. Or should something like this be disallowed?then
outside offork
Another case is when a task outside of
fork
is referenced inthen
. Hereb
referencesd
In my understanding this would execute the whole chain of
d --> e
twice as illustrated in the state diagram but the second run ofd
&e
would wait for both branches to be doneThe text was updated successfully, but these errors were encountered: