You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kedro 0.18.7中如何为ParallelRunner设置max_workers参数?

给Kedro ParallelRunner设置max_workers的两种实现方法

方法1:修改项目根目录的run.py(快速实现)

Kedro项目根目录的run.py是自定义运行逻辑的入口,你可以直接在这里初始化ParallelRunner并指定max_workers参数:

  1. 打开项目根目录的run.py文件
  2. 修改main函数中的运行逻辑,显式传入带参数的runner实例:
from kedro.framework.project import configure_project
from kedro.runner import ParallelRunner

def main():
    configure_project("your_project_name")  # 替换为你的实际项目名称
    from kedro.framework.session import KedroSession
    from kedro.framework.startup import bootstrap_project

    project_path = bootstrap_project(".")
    with KedroSession.create(project_path=project_path) as session:
        session.run(
            pipeline_name="<pipeline_name>",  # 替换为你要运行的管道名
            runner=ParallelRunner(max_workers=4)
        )

if __name__ == "__main__":
    main()
  1. 运行时直接执行python run.py即可,无需再在命令行添加--runner参数

方法2:通过配置文件控制(灵活扩展推荐)

如果需要更灵活地调整参数(比如分环境配置),可以结合配置文件和项目设置实现:

  1. 在项目的src/<your_project_name>/settings.py中添加runner的创建逻辑:
from kedro.runner import ParallelRunner

def create_parallel_runner(max_workers=None):
    # 未指定时默认用4核心,可根据需求修改默认值
    return ParallelRunner(max_workers=max_workers or 4)
  1. 修改根目录的run.py,从配置文件读取参数:
from kedro.framework.project import configure_project
from your_project_name.settings import create_parallel_runner  # 替换为项目名

def main():
    configure_project("your_project_name")
    from kedro.framework.session import KedroSession
    from kedro.framework.startup import bootstrap_project

    project_path = bootstrap_project(".")
    with KedroSession.create(project_path=project_path) as session:
        # 从配置文件读取max_workers参数
        runner_config = session.config_loader.get("runner")
        max_workers = runner_config.get("max_workers", 4)
        runner = create_parallel_runner(max_workers)
        session.run(pipeline_name="<pipeline_name>", runner=runner)

if __name__ == "__main__":
    main()
  1. 在conf/base/runner.yml中添加配置项(后续修改只需改配置文件):
max_workers: 4

如果需要分环境配置,可在conf/dev/runner.yml或conf/prod/runner.yml中覆盖这个值。

注意事项

  • 所有代码中的your_project_name需要替换为你的实际项目名称
  • WSL2共享主机CPU资源,max_workers建议设置不超过主机可用核心数,避免资源耗尽

内容的提问来源于stack exchange,提问作者Jenny_L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:13:15