Airflow - 如何跳过第二天的实例?

问题描述 投票:0回答:3

我有一个 DAG“abc”,计划在每天上午 7 点(美国中部标准时间)运行。由于某种原因,我不想运行明天的实例。我怎样才能跳过那个特定的实例。有什么方法可以使用命令行来做到这一点吗?感谢对此的任何帮助。

airflow directed-acyclic-graphs skip
3个回答
0
投票

我相信您可以在 UI 中的“浏览”->“DAG 运行”->“创建”下抢占为未来日期创建 DAG 运行,将其初始化为成功(或失败)状态,这应该可以防止调度程序在以下情况下创建新的运行:时间到了。我认为您也可以使用 trigger_dag 在 CLI 上执行此操作,但您只需要单独更新其状态,因为它会默认为运行。


0
投票

我认为您可以将 start_date 设置为后天或您希望 dag 运行的任何日期,只要是将来的日期即可。但时间表间隔将保持不变,每早上 7 点。您可以在 Default_Args 中开始日期


0
投票

您可以创建一个 Start 任务作为

ShortCircuitOperator
,如果您想跳过 DAG 运行 - 只需从 python_callable 返回 False 即可。它将把任务标记为 SKIPPED 并阻止下游任务运行。 好处:

  • 您将明确看到所有以这种方式跳过的 DAG 在树视图中运行

  • 可以检查日志中的特定原因(如果可能有多个)

  • 能够在需要时强制 Dag 运行..

    def start_product(execution_date, ti) -> bool: 返回布尔值()

    使用 DAG('MyDag', ... ) 作为 dag:

      start = ShortCircuitOperator(
          task_id='start',
          python_callable=start_production,
          op_kwargs=parameters,
          dag=dag
      )
      ...
      start >> [rest_of_dag_tasks]
    
© www.soinside.com 2019 - 2024. All rights reserved.