-
Notifications
You must be signed in to change notification settings - Fork 45
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
Disallow blocking nested workflow #1220
Comments
I'm not sure if I understand it.
block means to hang until completion of both A and B?
Will it impact parallel execution of |
OK, In the case of
or
the
or
the statement will send out workflows to be executed, but the step is blocking so nothing else can be run on the worker. Basically I am trying to make all sos statements non-blocking so that they can use the workers more efficiently and prevent deadlock. |
OK, right now I just give a warning because I have some workflows like
which should be written as
or
if execution order matters but a warning will let the workflows run. |
Final solutIon: sos will create a separate process for each blocking subworkflow, and shut it down when the workflow is completed. This means there is still a chance for sos to have more than |
#1167 Implements a way to run nested workflows concurrently, with the limitations that only workflows that are the last statement can be concurrent, and multiple workflows in
sos_riun(['A', 'B'])
can be concurrent but blocks the step executor.However, with the new strict
-j
worker implementation,sos_run('A')
not as the last statement will make the worker wait for the completion ofA
,So in the case of
-j1
,sos_run('A')
will take one worker and the workflow will hang forever.I would suggest that we disallow the execution of blocking nested workflow so that there will be no waiting process.
The text was updated successfully, but these errors were encountered: