擅长:python、mysql、java
<p>你有多个问题,让我把它分解一下</p>
<blockquote>
<p>Is there a way to achieve this something like returning false will fail the downstream task?</p>
</blockquote>
<p>等待事件发生的通常方法是使用sensor(从BaseSensorOperator继承)类。它们专门用于低资源消耗和易于配置以感知外部对象/资源。
但是,在您的情况下,这是一个检查和忘记(如果不存在,请不要重试)。然后你可以继续使用Python。您只需引发一个异常,它将被视为任务失败,从而阻止下游任务(在您的例子中是t2)运行</p>
<blockquote>
<p>also depends_on_past will not run the DAG if the earlier DAG run fails? or it don't run the downstream tasks if one of the task failed in the present run?</p>
</blockquote>
<p>如果我们有你的两个任务,假设我们有两次运行。一个在时间点<code>x</code>,一个在时间点<code>x + 1</code>。如果您有<code>depends_on_past=True</code>,那么<code>x + 1</code>的任务<code>t1</code>的运行将在时间<code>x</code>查看运行<code>t1</code>,并且仅当该运行成功时才会启动。
这同样适用于{<cd2>}的{<cd8>},它将检查{<cd2>}的{<cd4>}任务是否完成,然后检查{<cd8>}时间{<cd1>}是否成功</p>