python - 如何在 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?
谢谢
解决方案
如果您正在使用新的作业/操作 API,那么 Dagster 将默认使用多进程执行器,它将能够并行运行多个任务。
如果您使用的是管道/实体 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
推荐阅读
- javascript - 从外部 JavaScript 文件动态更改输入 ID 的类型
- jodatime - 我写了一个日期格式 yyyy-mm-dd 我想将它更正为 yyyy-MM-dd
- javascript - 我想将工具提示附加到“每个项目”的 ngx-newsticker 事件数组
- opendaylight - ONOS vs Opendaylight 需要考虑哪些因素
- hyperledger-fabric - 使用“composer network ping --card admin@trial.card”时“找不到卡”
- postgresql - 如何在 slick 3.2.0 中将 Map[String, String] 映射到 (String, String)
- c - 在链表中,最后一个 node->next 不为 NULL,导致 segfault
- android - 如何修复在 Android 中使用 tensorflow 时发生的错误
- c++ - 如何将 Windows GUID 转换为 boost::uuid?
- powerbi - 根据切片器值选择 DAX 度量