gpt4 book ai didi

Airflow - 从 dag 上下文回调中解析任务 ID

转载 作者:行者123 更新时间:2023-12-04 00:04:27 24 4
gpt4 key购买 nike

最初使用 dag callback ( on_failure_callbackon_success_callback )时,我认为它会在 success 完成时触发 faildag 状态(正如它在 dag 中定义的那样)。
但是它似乎在每个 task instance 而不是 dag run 处被实例化,因此如果 DAG 有 N 个任务,它将触发这些回调 N 次。

我正在 try catch 任务 ID,因此发送到 slack。阅读另一个 related question 我想出了以下内容:

def success_msg(context):
slack.slack_message(context['task_instance']); #send task-id to slack

def failure_msg(context):
slack.slack_message(context['task_instance']); #send task-id to slack

default_args = {
[...]
'on_failure_callback': failure_msg,
'on_success_callback': success_msg,
[...]
}

但它失败了,我应该如何解析上下文变量,从而获得任务 ID?

最佳答案

您可以从上下文中使用任务对象访问任务。context['task'] 应该是执行此操作的适当方法。要获取任务名称,请使用 task_id :context['task'].task_id要在上下文中找到更多可用的对象,您可以在此处浏览列表:https://airflow.apache.org/docs/apache-airflow/stable/macros-ref.html

关于Airflow - 从 dag 上下文回调中解析任务 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com