alir
06/12/2020, 5:42 PMexecute_pipeline
or execute_pipeline_iterator
, which worker is the child pipeline executed in? In the same worker? Or will it be enqueued as a new job in the broker queue, to be picked up later by another worker? I'm assuming it's the former.RemoteDagitRunLauncher
is on the deprecation path?nate
06/12/2020, 5:44 PMcelery-k8s
executor?alir
06/12/2020, 5:44 PMnate
06/12/2020, 5:45 PMalir
06/12/2020, 5:46 PMRemoteDagitRunLauncher
mostly because I wanted the parent pipeline to launch the new pipelines and then exit immediately, without needing to wait for the child pipelines to complete. As I understand it, execute_pipeline
is synchronous and execute_pipeline_iterator
requires the parent to handle the events through the returned iterator for the pipeline to execute. but I might be mistaken in my mental modelnate
06/12/2020, 5:46 PM_submit_task_k8s_job
alir
06/12/2020, 5:46 PMcelery
and not celery-k8s
. i misread. but your links still have the appropriate references so it's finenate
06/12/2020, 5:49 PMcelery
, step execution will happen in-process in the workerscelery-k8s
it will happen in launched K8s Jobs which are created by the workersalir
06/12/2020, 5:50 PMexecute_pipeline
in the celery
executor will execute the child pipeline's steps in the same process ?nate
06/12/2020, 5:52 PMexecute_pipeline
from another pipeline?alir
06/12/2020, 5:53 PMnate
06/12/2020, 5:53 PMexecute_pipeline
celery
there it should kick off execution and push new steps out to the celery queuealir
06/12/2020, 6:07 PMexecute_pipeline
logic. Aside from the use of RemoteDagitRunLauncher
, how would I launch new pipelines with asynchronous behavior?
That is, I want pipeline A to launch pipeline B, and I want A to exit as soon as it's done with all its steps. I don't need it to wait around until B is done.alex
06/12/2020, 6:31 PMDagsterInstance
has a RunLauncher
. You can configure it via dagster.yaml
in $DAGSTER_HOME
or use the default one which launches in a subprocess. For your case you may want to write a custom one that works for your constraints. From within a pipeline execution, you can theoretically call context.instance.launch_run
from within a solid, though satisfying that API may prove challengingalir
06/12/2020, 6:33 PMexternal_pipeline
.alex
06/12/2020, 6:34 PMExternalPipeline
isn’t quite the right object to require therealir
06/12/2020, 6:35 PMalex
06/12/2020, 6:36 PMRunLauncher
- you can just ignore that argumentRunLauncher
implementationsalir
06/12/2020, 6:38 PMRemoteDagitRunLauncher
. In my mental model, if my solid is executing within a celery worker, and I want to launch a new run, the solid needs to be told "hey, there's a dagit instance here. use it to launch this new run".alex
06/12/2020, 6:40 PMalir
06/12/2020, 6:40 PMalex
06/12/2020, 6:41 PMhelm
chart or do it all your self?alir
06/12/2020, 6:41 PMalex
06/12/2020, 6:44 PM/instance
in dagit (or click the “Instance Details” button) what does it have set for RunLauncher
currently?alir
06/12/2020, 6:46 PMRun Launcher:
module: dagster.core.launcher.cli_api_run_launcher
class: CliApiRunLauncher
config:
{}
(In 0.7.15, I used RemoteDagitRunLauncher
in dagster.yaml
and the pipelines were being launched as expected. In the process of migrating to 0.8, i temporarily removed the Runlauncher configuration from dagster.yaml
)alex
06/12/2020, 6:48 PMK8sRunLauncher
) set to successfully executeRemoteDagitRunLauncher
that didn’t require external_pipeline
in the dagster.yaml
that gets mounted in to the celery
boxes and then in solid execution context.instance.launch_run(run_id=run_id, external_pipeline=None)
should workalir
06/12/2020, 6:50 PMalex
06/12/2020, 6:51 PMdagit
box from your solidalir
06/12/2020, 6:52 PMalex
06/12/2020, 6:53 PMalir
06/12/2020, 6:54 PMalex
06/12/2020, 6:55 PMdagster-graphql -p launchPipelineExecution -v <json encoded variables> --remote <dagit hostname>
launch
button to see an example of what the input structure looks likealir
06/12/2020, 6:58 PMalex
06/12/2020, 6:59 PMRemoteDagitRunLauncher
is doing is making the same GraphQL call so doing it directly is just skipping unneeded stepsalir
06/12/2020, 10:34 PMLAUNCH_PIPELINE_EXECUTION_MUTATION
query and with the appropriate executionParameters set. this approach might be leaking the abstraction a little bit, since I have to peek underneath the dagster hood. but it's a way forward and I think I can improve upon this. thanks for the suggestion!alex
06/12/2020, 11:01 PM