In Apache Airflow, lo Scheduler è il componente responsabile della pianificazione e dell’esecuzione dei DAG. Gestire correttamente lo scheduler ti aiuterà a orchestrare i flussi di lavoro in modo efficiente.
Come funziona lo Scheduler
Lo Scheduler monitora la cartella dei DAG, analizza le dipendenze, crea le DagRun in base allo schedule e assegna i task ai worker.
Definire lo schedule
dag = DAG('daily_etl', schedule_interval='0 6 * * *') # ogni giorno alle 6:00
dag = DAG('hourly', schedule_interval='@hourly')
dag = DAG('manual', schedule_interval=None)Timetable (Airflow 2.2+)
from airflow.timetables.interval import CronDataIntervalTimetable
dag = DAG(
'business_hours_only',
timetable=CronDataIntervalTimetable(
cron='0 9-17 * * 1-5',
timezone='Europe/Rome',
),
)Data Interval e Execution Date
Un DAG con schedule @daily che processa i dati del 1° gennaio verrà eseguito il 2 gennaio, perché Airflow aspetta che il periodo di dati sia completo.
Catchup e Backfill
dag = DAG(
'my_dag',
start_date=datetime(2024, 1, 1),
catchup=False,
)Best Practice
- Imposta sempre una start_date fissa
- Usa catchup=False di default
- Definisci i timezone esplicitamente
- Monitora le performance dello scheduler
Una comprensione approfondita dello Scheduler è essenziale per pipeline che rispettino i requisiti temporali del business.