Dags का Scheduling

Python में Apache Airflow परिचय

Mike Metzger

Data Engineer

Dag Runs

  • किसी समय बिंदु पर वर्कफ़्लो का एक विशेष इंस्टेंस
  • मैन्युअली या schedule से चलाया जा सकता है
  • हर वर्कफ़्लो और उसके टास्क का स्टेट रखें
    • running
    • failed
    • success
1 https://airflow.apache.org/docs/stable/scheduler.html
Python में Apache Airflow परिचय

Dag Runs view

Airflow Dag Runs पेज, जो सभी Dags के हालिया रन दिखाता है

Python में Apache Airflow परिचय

Dag Runs state

Airflow Dag Runs पेज, हर रन के लिए state कॉलम दिखाते हुए

Python में Apache Airflow परिचय

Schedule विवरण

Dag शेड्यूल करते समय ये मुख्य एट्रिब्यूट्स देखें:

  • start_date - Dag रन को पहली बार शेड्यूल करने की तारीख/समय
  • end_date - नए Dag इंस्टेंस रोकने का वैकल्पिक समय
    • start_date और end_date दोनों datetime(year, month, day) ऑब्जेक्ट लेते हैं, जैसे:
       from pendulum import datetime
       start_date=datetime(2026, 4, 10, tz="UTC")
      
Python में Apache Airflow परिचय

Schedule

schedule दर्शाता है:

  • Dag को कितनी बार शेड्यूल करना है
  • start_date और end_date के बीच
  • cron सिंटैक्स, बिल्ट-इन प्रीसेट्स, या timedeltas से परिभाषित कर सकते हैं।
Python में Apache Airflow परिचय

cron सिंटैक्स

cron सिंटैक्स का डायग्राम, जिसमें पाँच स्पेस-सेपरेटेड टाइम फ़ील्ड्स हैं

  • Unix cron फ़ॉर्मेट से
  • स्पेस से अलग 5 फ़ील्ड्स
  • * हर इंटरवल पर रन को दर्शाता है (जैसे हर मिनट, हर दिन)
  • फ़ील्ड्स में कॉमा-सेपरेटेड वैल्यूज़ देकर सूची बना सकते हैं
Python में Apache Airflow परिचय

cron उदाहरण

cron सिंटैक्स का डायग्राम, जिसमें पाँच स्पेस-सेपरेटेड टाइम फ़ील्ड्स हैं

0 12 * * *              # रोज़ दोपहर 12 बजे रन करें
* * 25 2 *              # 25 फरवरी को हर मिनट रन करें
0,15,30,45 * * * *      # हर 15 मिनट पर रन करें
Python में Apache Airflow परिचय

Airflow scheduler presets

Preset:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly

cron equivalent:

  • 0 * * * *
  • 0 0 * * *
  • 0 0 * * 0
  • 0 0 1 * *
  • 0 0 1 1 *
1 https://airflow.apache.org/docs/stable/scheduler.html
Python में Apache Airflow परिचय

Special presets

Airflow में तीन विशेष schedule प्रीसेट्स हैं:

  • None - कभी शेड्यूल न करें, मैन्युअली ट्रिगर किए गए Dags के लिए
  • @once - केवल एक बार शेड्यूल करें
  • @continuous - पिछला रन खत्म होते ही तुरंत चलाएँ
Python में Apache Airflow परिचय

timedelta

  • pendulum.duration भी उपयोग कर सकते हैं
  • duration(hours=6)
  • duration(minutes=30)
from pendulum import duration

@dag(
  dag_id="example_dag"
  schedule=duration(days=2)
)
Python में Apache Airflow परिचय

Schedules लागू करना

  • Schedule Dag पर परिभाषित होता है
  • schedule पैरामीटर उपयोग करता है:
@dag(
  dag_id="example_dag",
  schedule="0 12 * * *"
)
@dag(
  dag_id="example_dag",
  schedule="@daily"     
)
Python में Apache Airflow परिचय

schedule से जुड़ी बातें

Dag शेड्यूल करते समय, Airflow यह करेगा:

  • स्टार्ट डेट के बाद एक पूरा इंटरवल गुजरना चाहिए
  • टास्क को start_date + schedule पर शेड्यूल करेगा
'start_date': datetime(2026, 2, 25, tz="UTC")
'schedule': @daily

Dag चलने का सबसे पहला समय 26 फरवरी, 2026 है

Python में Apache Airflow परिचय

अभ्यास करते हैं!

Python में Apache Airflow परिचय

Preparing Video For Download...