在与DAG其余任务分开的时间运行Airflow任务

时间:2018-08-27 22:56:42

标签: airflow

我有一个Airflow DAG,它每天在特定时间运行一次。 DAG运行大量SQL脚本以在数据库中创建和加载表,最后一项任务是更新权限,以便用户可以访问表。当前,权限任务要求所有之前的SQL任务都已完成,因此,这意味着如果表任务的 any 失败,则不会更新任何表的权限。

要解决此问题,我想创建另一个权限任务(即备份任务),该任务在预设时间运行,而不管先前任务的状态如何(多次更新权限不会受到损害)。如果我没有指定与DAG时间不同的时间,那么由于新任务没有依赖性,因此该任务将在更新任何表之前尝试更新权限。我是否有将cron字符串传递给特定任务的设置?还是可以选择在任务的DAG时间之上传递时间增量?我需要在DAG时间之后运行一段时间。

1 个答案:

答案 0 :(得分:0)

如果不管上游任务的结果如何,您的权限任务都可以运行,我认为最好的选择就是将您的权限任务的trigger_rule更改为all_donedefault is all_success )。

如果发生故障时需要执行一些特定的工作,则可以考虑创建辅助DAG,第一步是传感器等待主DAG完成State.FAILED,然后运行权限任务。 / p>

要在DAG之间建立依赖关系,请查看ExternalTaskSensor

我没有检查,但是您可能还需要在传感器上使用soft_fail,以防止在主DAG成功完成后,辅助DAG显示为失败。

相关问题