繁体   English   中英

如何让 airflow dag 等待 VM 在执行下一个任务之前完成其工作

[英]how to make airflow dag wait VM to finishes its job before doing the next task

我的工作流程的高级描述

我的虚拟机做了什么——从 gcs 获取数据,处理数据,将处理后的数据保存到 gcs

我的 dag 目前所做的 - 启动 vm >> 停止 vm >> 执行 rest 的数据转换工作。

当我运行上面的 dag 时,它会启动 vm 并在此之后立即停止 vm。 我想让我的 dag 等待 vm 完成它的工作。

注意:kubernates/cloud run 不适合我。

如果您知道您的 VM 将写入 GCS 的 output 文件名,您可以在start_vmstop_vm之间添加一个传感器,检查 output 文件是否每 X 秒创建一次,一旦创建,传感器将标记为succeeded并且任务stop_vm启动:

gcs_output_sensor = GCSObjectExistenceSensor(
    bucket="bucket_name",
    object="path/to/file"
)
start_the_vm >> gcs_output_sensor >> stop_the_vm >> do_the_rest_of_data_transformation_job

如果没有,你可以代替运行虚拟机启动时自动处理数据的脚本,你可以运行虚拟机并使用SSHOperator运行脚本,在这种情况下任务将等待脚本,其他任务将等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM