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

调度创建的RunConfig:重运行行为及配置分区取舍

问题描述

假设我使用@schedule装饰器,按如下方式创建带有RunConfig和分区的RunRequest:

class MyAssetConfig(Config):
    x: str
    y: str

@schedule(...)
def some_scheduler(context: ScheduleEvaluationContext):
    
    my_asset_config = MyAssetConfig(x="xxxx", y="yyyy")

    run_config = RunConfig(ops={"asset1": my_asset_config})
    yield RunRequest(run_key="abc", partition_key="abc", run_config=run_config)

现在该任务已调度,之后我因某些原因需要重运行某个分区。对应的资产代码会携带partition_key,但RunConfig会如何处理?重运行分区时我是否需要手动重新提供x和y的值?原运行时使用的x、y值会丢失,还是可以轻松复用之前的RunConfig?

我真正关心的是:有多少类分区信息可以放在配置中,又有多少这类信息需要放在分区本身,才能保留重运行能力?


回答

重运行时RunConfig的处理逻辑

原运行时的RunConfig会被Dagster完整存储在运行记录中,重运行该分区时不需要手动重新提供x和y的值,系统会自动复用之前的配置。除非你在重运行时主动指定新的RunConfig,否则默认会沿用原运行的配置参数。

配置与分区信息的划分原则

  • 适合放在partition_key中的信息:

    • 和分区核心维度强绑定的标识(比如日期、地域编码、业务线ID),这类信息是区分不同分区的核心依据,会被Dagster的分区调度系统追踪,用于自动生成调度计划、资产血缘管理、分区状态统计。
    • 这类信息通常是固定的分区维度,不会随单次运行变化。
  • 适合放在RunConfig中的信息:

    • 该分区单次运行的专属参数(比如你的x和y)、环境配置、依赖资源的参数等,这些是和具体运行实例绑定的配置,不需要作为分区维度,但需要和运行记录关联以支持重运行复用。
    • 如果某个参数是同分区所有运行都固定的,也可以将其配置为资产的默认参数,或者从环境变量/配置文件中动态读取,这样调度和重运行都会自动加载,无需每次在Schedule中手动构造。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:17:13