我有一个DAG,它基本上设置了一个Slack频道并邀请一群人来使用它。如果没有更改,我真的不需要创建频道并在每次DAG运行时添加用户。同时,我需要确保渠道和用户已经存在。
我在想,是否有一种方法可以使Airflow仅在上一次DAG运行未成功或在最后一个小时左右没有运行时才可以运行任务。
我想我也可以做一些检查点(构建用户的哈希并将其腌制到文件中,并在后续运行中进行比较);但是我希望Airflow已经有了这种方式。
答案 0 :(得分:2)
有几种方法可以解决此问题:
1)BranchOperator:您可以定义一个自定义条件,并根据该条件触发DAG的分支运行。这可能是最简单的方法,因为您可以包装逻辑来检查可调用的python中的通道。您可以找到更长的示例here
2)另一种方法是设置TriggerRule。您可以设置一个任务,该任务创建一个仅在上游任务成功或失败时才运行的通道。