猿问

气流:仅当当前相同的实例未运行时,如何为每小时工作流指定条件,例如触发器?

我创建了一个工作流(包含几个任务)。这是每小时执行。仅当工作流的另一个实例未同时运行时才应触发工作流。如果它正在运行,则应跳过该小时的工作流执行。

我检查了“depends_on_past”但无法得到它。


MMMHUHU
浏览 157回答 2
2回答

12345678_0001

将max_active_runs您设置DAG为 1 并设置catchup为False

撒科打诨

该depends_on_past(布尔),设置为True时,从保持如果任务的时间表以前没有成功得到触发一个任务。如果您在任务定义中使用它,它将起作用。您也可以将其与它配对,wait_for_downstream= True以确保新运行的实例在任务的最后一个运行实例完成执行之前不会开始。task_depends = DummyOperator( task_id= "task_depend", dag= dag, depends_on_past= True )但是,假设您只需要最新运行即可解决此问题,另一种解决方法是使用“仅最新运行”概念:标准工作流行为涉及为特定日期/时间范围运行一系列任务。但是,某些工作流执行的任务与运行时间无关,但需要按计划运行,很像标准的 cron 作业。在这些情况下,在暂停期间错过的回填或正在运行的作业只会浪费 CPU 周期。对于此类情况,您可以使用LatestOnlyOperator跳过在 DAG 的最近计划运行期间未运行的任务。在LatestOnlyOperator跳过所有直接下游的任务,而且本身,如果时间现在是不是它之间execution_time和未来计划execution_time。
随时随地看视频慕课网APP

相关分类

Python
我要回答