在 python 中取消暂停和暂停 dag

Unpausing and Pausing a dag in python

场景:

我进行了一个 POST 调用来触发导出文件的进程,此调用 returns 一个 Export-ID。这个过程可能需要未知的时间才能完成,所以我必须定期使用 Export-ID 进行 GET 调用以查看该过程是否完成,这个 GET 调用 returns 一个 STATUS 和一个 URL 导出完成后到下载位置。

目标:

我想创建一个启动此导出的 Dag,然后等待 20 分钟并发送 GET 请求以查看 URL 是否存在,这意味着导出已完成。

问题:

由于我们不知道完成导出需要多长时间,我们不希望这个 Dag 卡在空闲状态等待 20 分钟来检查导出是否完成,占用资源。有没有办法pause/stop这个dag,释放这段时间的资源

我想做什么: 创建具有 2 个任务的 Dag: 任务 1:启动导出 任务 2:取消暂停第二个 dag,该 dag 检查并计划在我们要检查的时间间隔内 运行 Dag 完成

Subdag 1 任务: 任务 1:获取导出 ID,检查 url 是否可用,如果可用则开始下载然后在下载后暂停 dag。如果 url 不可用,完成 dag 并在间隔集中重新 运行 。

这条路好走吗?如果是这样,为什么不呢,什么更好。我没有发现任何 API 明智的方法可以让我使用 python 暂停和取消暂停 dag,这可能吗?

设置您的流程,使 submit_export >> consume_export 并且如果导出尚未准备就绪 consume_export 失败 - 然后放置 retries 和合适的重试间隔,无论您想要多长时间继续努力。

或者,如果您想知道导出已完成但消费者步骤失败,您可以执行 submit_export >> wait_export >> consume_export,然后如果您看到 wait_export 失败,您就会知道导出没有及时出现。