Source code for airflow.example_dags.example_sla_dag
# Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License.importtimefromdatetimeimportdatetime,timedeltafromairflow.decoratorsimportdag,task"""Example DAG demonstrating SLA use in Tasks"""# [START howto_task_sla]defsla_callback(dag,task_list,blocking_task_list,slas,blocking_tis):print("The callback arguments are: ",{"dag":dag,"task_list":task_list,"blocking_task_list":blocking_task_list,"slas":slas,"blocking_tis":blocking_tis,},)@dag(schedule_interval="*/2 * * * *",start_date=datetime(2021,1,1),catchup=False,sla_miss_callback=sla_callback,default_args={'email':"email@example.com"},)defexample_sla_dag():@task(sla=timedelta(seconds=10))defsleep_20():"""Sleep for 20 seconds"""time.sleep(20)@taskdefsleep_30():"""Sleep for 30 seconds"""time.sleep(30)sleep_20()>>sleep_30()dag=example_sla_dag()# [END howto_task_sla]