我在气流障碍中有3个任务。
这三个任务有时间依赖性
任务1-上午8点
任务-上午2-10点
任务-3-12 am
我没有找到任何有关此的文档。它仅告诉您设置上游或下游作业。有人可以帮忙吗
我正在使用Google CLoud Composer
好,气流结构被制作成schedule_interval
被设置在DAG级别。这意味着您可以设置整个DAG开始执行的时间,但实际上不能为每个task指定不同的执行时间。
如果您有三个相互独立的任务,解决方案是创建三个不同的DAG,并在这三个不同的时间安排它们。
如果相反,task_2
和task_3
的时间依赖性不是那么重要,但您只关心被执行的一个接一个,实际上,您可以设置任务之间的依赖性,以便task_2
task_1
完成后总是运行,task_3
完成后总是运行task_2
。要设置依赖项,您可以使用非常方便的语法(假设您的任务已分配给变量task_1
,task_2
,task_3
):
task_1 >> task_2 >> task_3
您可以参考Airflow official documentation了解更多信息。
TL; DR:您无法安排单个任务在不同的特定时间运行,因为您可以设置的唯一时间是DAG整体运行一次。
气流文档:
https://airflow.apache.org/docs/stable/concepts.html#bitshift-composition
在Airflow 1.8之后,您还可以使用位移合成。
而不是为您的任务设置时间,而是使用这种方法:
op1 = DummyTask(...)
op2 = DummyTask(...)
op1 >> op2 # same as: op1.set_downstream(op2)
上面的分配意味着气流仅在成功完成op2
之后才执行op1
。