作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能够成功实现和测试 on_success_callback 和 on_failure_callback 在 Apache Airflow 中,包括能够使用上下文对象成功地将参数传递给它们。但是我无法成功实现 sla_miss_callback .通过浏览不同的在线资源,我发现传递给这个函数的参数是
dag, task_list, blocking_task_list, slas, blocking_tis
最佳答案
似乎不可能将上下文字典传递给 SLA 回调(请参阅 sla_miss_callback 的源代码),但我找到了一种合理的解决方法来访问有关 dag-run 的其他一些信息,例如 dag_id、task_id 和 execution_date .您还可以使用任何应该可以正常工作的内置宏/参数。当我使用 SlackWebhookOperator
对于我的其他回调,我使用 SlackWebhookHook
对于 sla_miss_callback。例如:
from airflow.providers.slack.hooks.slack_webhook import SlackWebhookHook
def sla_miss_callback(dag, task_list, blocking_task_list, slas, blocking_tis, *args, **kwargs):
dag_id = slas[0].dag_id
task_id = slas[0].task_id
execution_date = slas[0].execution_date.isoformat()
hook = SlackWebhookHook(
http_conn_id='slack_callbacks',
webhook_token=BaseHook.get_connection('slack_callbacks').password,
message=f"""
:sos: *SLA has been missed*
*Task:* {task_id}
*DAG:* {dag_id}
*Execution Date:* {execution_date}
"""
)
hook.execute()
关于python - 如何在 sla_miss_callback 函数中获取上下文对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64040649/
我是一名优秀的程序员,十分优秀!