在Airflow的配置文件中,可以通过设置AIRFLOW__SCHEDULER__SCHEDULER_RUN_DURATION变量来配置调度程序的运行持续时间。然而,一个常见的问题是当调度程序在此时间内停机时,它不会自动重新启动。这可能会导致作业未能及时运行。
要解决这个问题,可以将以下代码添加到Airflow的配置文件中:
[email] email_backend = airflow.utils.email.send_email_smtp
[celery] worker_concurrency = 16
[scheduler] scheduler_heartbeat_sec = 10 run_duration = 1800 # 30 minutes max_threads = 2
[email_alert] to = [email protected] subject = Airflow alert: {{ ti }} failed html_content =
Hello,
An error occurred while processing the task {{ ti }}.
Please take a look and fix the issue as soon as possible. Thank you!
这将确保调度程序在停机后重新启动,并且将通过电子邮件通知您有关发生故障的任务的信息。
请注意,这将需要您配置您的Airflow电子邮件设置。您可以在您的配置文件中指定发送电子邮件的方法,如send_email_smtp,在[scheduler]部分中指定调度程序心跳间隔,并根据需要设置措施来通知您有关任务错误的信息。