Hi dagsters! I was asking earlier about control of...
# ask-community
s
Hi dagsters! I was asking earlier about control of solids order execution when using composite_solid on DynamicOutput The suggestion was to use tag
dagster/priority
. So I tried and thats works only for
InProcessExecutor
and
MultiprocessExecutor
with
max_concurrent: 1
but for
max_concurrent > 1
that will not work as well as for
CeleryExecutor
with
dagster-celery/priority
tag So tag
dagster-celery/priority
in case of CeleryExecutor with only one process (
autoscale=1,1
) have no effect in that particular example case Can anyone know how to achieve same effect on CeleryExecutor with one worker to execute all parts of composite_solid on first DynamicOutput and only after - on second
Desired execution looks like this:
but I have this:
j
Hi Stepan- this changes when you have
max_concurrent > 1
because the engine tries to maximize the number of steps running at once. When deciding the next step to execute, it only considers steps that have had their inputs fulfilled (and then uses priorities to pick among that group).
The steps making up a composite solid are treated the same as any other steps, hence why they don’t necessarily execute in order
s
If I understand You clear - there is no simple way to control the order of solids in parallel executor (multiprocess or celery). The only way is to write a custom StepLauncher or Executor? Thanks for the answer!
I will just combine that 2 solids code into one solid to guarantee atomic execution - that will be the simplest solution to my problem