Jinja के साथ लिखना
जैसे-जैसे आपने Airflow के साथ काम बढ़ाया है, आपने अलग-अलग नोटिफिकेशन callbacks जोड़े हैं, लेकिन अब आपको एहसास हुआ है कि हर बार इनबॉक्स में वही मैसेज आ रहा है. जब subject हमेशा समान हो, तो सही मैसेज ढूँढना मुश्किल हो जाता है. Airflow की Jinja सपोर्ट के बारे में पढ़ने के बाद, आपको समझ आता है कि आप अब कुछ पहचानने योग्य जानकारी जोड़ सकते हैं ताकि आपके Dags हर दिन के रन के लिए अलग रिपोर्ट भेजें. आपने तय किया है कि पहले sales_update Dag को अपडेट करें ताकि उसके सफलतापूर्वक पूरा होने पर वह आपको टेम्पलेटेड subject के साथ एक ईमेल भेजे.
सभी ज़रूरी Airflow imports पहले से उपलब्ध हैं, और pull_sales_data तथा generate_sales_report टास्क पहले से परिभाषित हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Apache Airflow परिचय
अभ्यास निर्देश
Dag को इस तरह सेट करें कि बिना error के पूरा होने पर आपको ईमेल आए.
नोटिफिकेशन ईमेल के लिए
subjectattribute सेट करें.subject लाइन में रन की तारीख शामिल करने के लिए Jinja टेम्पलेट का उपयोग करें:
Sales update successfully processed for YYYY-MM-DD
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Add a notification when successful, including date in the subject
@dag(start_date=datetime(2026,4,30),
____=SmtpNotifier(
from_email="[email protected]",
to="[email protected]",
____="Sales update successfully processed for {{ ____ }}"
))
def sales_update():
pull_sales_data() >> generate_sales_report()
sales_update()