मैं एयरफ्लो के लिए नया हूं और मैं यह समझने की कोशिश कर रहा हूं कि शेड्यूलर का सही तरीके से उपयोग कैसे किया जाए। मूल रूप से मैं कार्यों को उसी तरह शेड्यूल करना चाहता हूं जैसे मैं क्रॉन का उपयोग करता हूं। एक कार्य है जिसे हर 5 मिनट में चलाने की आवश्यकता होती है और मैं चाहता हूं कि यह डीएजी फ़ाइल को डैग निर्देशिका में जोड़ने के बाद या डैग फ़ाइल में कुछ बदलाव करने के बाद भी 5 मिनट के स्लॉट में शुरू हो।

मुझे पता है कि DAG को शेड्यूल_इंटरवल के अंत में चलाया जाता है। अगर मैं एक नया डीएजी जोड़ता हूं और start_date=days_ago(0) का उपयोग करता हूं तो मुझे दिन की शुरुआत से अनावश्यक रन मिलेंगे। डैग फ़ाइल यानी start_date=datetime(2019, 9, 4, 10, 1, 0, 818988) पर कुछ विशिष्ट प्रारंभ तिथि को हार्डकोड करना भी मूर्खतापूर्ण लगता है। क्या मेरा दृष्टिकोण गलत है या कोई विशिष्ट कारण है कि start_date को सेट करने की आवश्यकता क्यों है?

0
MrBronson 5 सितंबर 2019, 11:02

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि मुझे आधिकारिक दस्तावेज़ीकरण से अपने स्वयं के प्रश्न का उत्तर मिला: https:/ /airflow.apache.org/scheduler.html#backfill-and-catchup

कैचअप को बंद करके, DAG रन केवल सबसे हाल के अंतराल के लिए बनाया जाता है। तो फिर मैं अतीत में किसी भी चीज़ के लिए start_date सेट कर सकता हूं और इस तरह से डैग को परिभाषित कर सकता हूं:

dag = DAG('good-dag', catchup=False, default_args=default_args, schedule_interval='*/5 * * * *')

3
MrBronson 5 सितंबर 2019, 15:02