Airflow 我可以在一个DAG下有不同开始日期的任务吗?

Airflow 我可以在一个DAG下有不同开始日期的任务吗?,airflow,Airflow,我有一个DAG,它运行两个任务:a和B 我没有在DAG级别指定start\u date,而是将其作为操作符的属性添加(在本例中,我使用的是PythonOperator),并将其从DAG字典中删除。这两项任务每天都运行 A的开始日期为2013-01-01,而B的开始日期为2015-01-01。我的问题是,任务A的气流运行了16天(因为我猜在我的气流.cfg中,我保留了默认的dag_concurrency=16),从2013-01-01开始,然后停止。DAG处于状态正在运行,而B的任务处于状态无状态

我有一个DAG,它运行两个任务:
a
B

我没有在DAG级别指定
start\u date
,而是将其作为操作符的属性添加(在本例中,我使用的是
PythonOperator
),并将其从DAG字典中删除。这两项任务每天都运行

A
开始日期为2013-01-01,而
B
开始日期为2015-01-01。我的问题是,任务A的气流运行了16天(因为我猜在我的
气流.cfg
中,我保留了默认的
dag_concurrency=16
),从2013-01-01开始,然后停止。DAG处于状态
正在运行
,而
B
的任务处于状态
无状态

很明显,我做错了什么,我可以简单地在DAG级别设置
start\u date
,并从
A
start\u date
运行
B
,但这不是我想要做的

或者,我可以将它们拆分为单独的DAG,但同样,这不是我想要监视它们的方式

有没有办法让一个DAG有多个任务,每个任务都有自己的开始日期?如果是,如何做到这一点

更新:

我知道可以添加,但这似乎只适用于依赖的任务流,并且存在下游。在我的例子中,
A
独立于
B

使用并签入您的执行日期是否为“2015-01-01”的任务。如果为true,则应执行任务B,否则应执行虚拟任务

但是,我建议使用单独的DAG


关于分支的文档:

SubDagOperator如何?我如何使用它来实现这一点?您能详细介绍一下您的用例吗?如果任务是完全幂等的,只需要做两个DAG。它们是完全幂等的,但是将它们分组是合乎逻辑的,因为它们非常相似。添加一个虚拟任务听起来不是一个很好的例子。请你举一个例子并提出建议,这是否确实是解决此类问题的最佳方式?有两个DAG不是更干净吗?在阅读了有关此操作的内容后,它没有做我希望它做的事情,因为它会分支,所以当我检查UI时,作业不会被“跳过”@Newskooler我绝对建议使用一个单独的DAG,但我在下面的评论中看到,您正在寻找一个不同的解决方案,而不是将其分离到另一个DAG。另外,看看-这更详细地解释了分支。如果您的任务被跳过,将在UI中显示。我也更新了我的答案。我有大约750k个不同开始日期的任务。在这种情况下,您还会将它们作为单独的DAG吗?如果您有750k个任务,我确信您正在动态生成它们,如果是,请使用BranchPythonOperator。我会根据逻辑上相关的组将它们划分为不同的DAG。如果这不可能,我会使用BranchPythonOperator,这样我就可以看到任务何时被跳过或运行。