Airflow по умолчанию при сбое обратного вызова
в моем файле DAG я определил функцию on_failure_callback (), чтобы опубликовать слабину в случае сбоя.
Это хорошо работает, если я указываю для каждого оператора в моем DAG: on_failure_callback=on_failure_callback ()
есть ли способ автоматизировать (например, через default_args или через мой объект DAG) отправку всем моим операторам?
1 ответов
Я, наконец, нашел способ сделать это.
вы можете передать свой on_failure_callback как default_args
class Foo:
@staticmethod
def get_default_args():
"""
Return default args
:return: default_args
"""
default_args = {
'on_failure_callback': Foo.on_failure_callback
}
return default_args
@staticmethod
def on_failure_callback(context):
"""
Define the callback to post on Slack if a failure is detected in the Workflow
:return: operator.execute
"""
operator = SlackAPIPostOperator(
task_id='failure',
text=str(context['task_instance']),
token=Variable.get("slack_access_token"),
channel=Variable.get("slack_channel")
)
return operator.execute(context=context)