如何在 dagster 中并行 运行 任务?
How to run tasks in parallel in dagster?
我正在使用 dagster 运行 进入本地 node.js 微服务管道,以便执行测试。
ide 执行 n docker_files 和 n node.js 个微服务,就像使用 dagster 一样容易。
问题是当我执行第一个第二个任务 shell 命令来执行 docker 容器时,dagsteer 保持在那个点,而不是在同一级别执行所有任务。
当前的 dag 日志是这样的
login aws
|
|
|
v
[docker_elastic, docker_kafka, sleep_10]
|
|
|
v
[node_service_one, node_service_two, node_service__three]
我可以同时执行所有 docker_elastic 和所有 node_services 吗?
是否有另一个易于配置的选项来轻松构建本地 dags?
谢谢
如果您正在使用新的 job/op API,那么 Dagster 将默认使用多进程执行器,它将能够 运行 并行处理多个任务。
如果您正在使用 pipeline/solid API,那么您可以传入 运行 配置来告诉 Dagster 使用多进程执行器而不是默认的单进程执行器。如果您从 Dagit 启动管道,您将传入 运行 配置,如下所示:
execution:
multiprocess: {}
如果您从 python api 启动这些 运行,则 运行 配置为:
run_config={"execution": {"multiprocess": {}}}
请注意,您需要使用多进程兼容的 IOManager,例如 fs_io_manager (from dagster import fs_io_manager
)。
有关多进程执行的完整文档在此处:https://docs.dagster.io/0.12.14/concepts/solids-pipelines/pipeline-execution#multiprocessing-execution
我正在使用 dagster 运行 进入本地 node.js 微服务管道,以便执行测试。
ide 执行 n docker_files 和 n node.js 个微服务,就像使用 dagster 一样容易。
问题是当我执行第一个第二个任务 shell 命令来执行 docker 容器时,dagsteer 保持在那个点,而不是在同一级别执行所有任务。
当前的 dag 日志是这样的
login aws
|
|
|
v
[docker_elastic, docker_kafka, sleep_10]
|
|
|
v
[node_service_one, node_service_two, node_service__three]
我可以同时执行所有 docker_elastic 和所有 node_services 吗?
是否有另一个易于配置的选项来轻松构建本地 dags?
谢谢
如果您正在使用新的 job/op API,那么 Dagster 将默认使用多进程执行器,它将能够 运行 并行处理多个任务。
如果您正在使用 pipeline/solid API,那么您可以传入 运行 配置来告诉 Dagster 使用多进程执行器而不是默认的单进程执行器。如果您从 Dagit 启动管道,您将传入 运行 配置,如下所示:
execution:
multiprocess: {}
如果您从 python api 启动这些 运行,则 运行 配置为:
run_config={"execution": {"multiprocess": {}}}
请注意,您需要使用多进程兼容的 IOManager,例如 fs_io_manager (from dagster import fs_io_manager
)。
有关多进程执行的完整文档在此处:https://docs.dagster.io/0.12.14/concepts/solids-pipelines/pipeline-execution#multiprocessing-execution