В настоящее время я работаю с группой обеспечения доступности баз данных, которая будет отправлять по электронной почте список пользователей, независимо от того, успешно ли выполнена группа обеспечения доступности баз данных или произошла ошибка. Я пытаюсь, чтобы поток DAG выглядел следующим образом:
from datetime import datetime
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from airflow.operators.email_operator import EmailOperator
def print_hello():
return 'Hello world!'
default_args = {
'owner': 'peter',
'start_date':datetime(2018,8,11),
}
dag = DAG('hello_world', description='Simple tutorial DAG',
schedule_interval='* * * * *',
default_args = default_args, catchup=False)
hello_operator = PythonOperator(task_id='hello_task', python_callable=print_hello, dag=dag)
email_success = EmailOperator(
task_id='send_email',
to='to@gmail.com',
subject='Airflow Alert Success',
html_content=""" <h3>Email Test Success</h3> """,
dag=dag
)
email_failure = EmailOperator(
task_id='send_email',
to='to@gmail.com',
subject='Airflow Alert Failure',
html_content=""" <h3>Email Test Failed</h3> """,
dag=dag
)
hello_operator.set_downstream(email_success,email_failure)
Есть ли встроенный оператор, который я могу использовать с airflow, чтобы решить, отправляется ли оператор email_success после завершения DAG или если оператор email_failure выполняется при сбое группы DAG по какой-либо причине?
Спасибо