मेरे पास एक एयरफ्लो एचटीपी सेंसर है जो एक आरईएसटी एंडपॉइंट को कॉल करता है और एपीआई द्वारा लौटाए गए JSON संरचना में एक विशिष्ट मान की जांच करता है

sensor = HttpSensor(
    soft_fail=True,
    task_id='http_sensor_check',
    http_conn_id='http_default',
    endpoint='http://localhost:8082/api/v1/resources/games/all',
    request_params={},
    response_check=lambda response: True if check_api_response(response) is True else False,
    mode='reschedule',
    dag=dag)

यदि response_check गलत है, तो DAG को "up_for_reschedule" स्थिति में डाल दिया जाता है। मुद्दा यह है कि डीएजी हमेशा के लिए उस स्थिति में रहे और कभी भी पुनर्निर्धारित नहीं हुआ।

मेरे प्रश्न हैं:

  • "up_for_reschedule" का क्या अर्थ है? और डीएजी को कब पुनर्निर्धारित किया जाएगा?
  • मान लीजिए कि मेरा डीएजी हर 5 मिनट में चलने के लिए निर्धारित है, लेकिन सेंसर की वजह से, "up_for_reschedule" डीएजी इंस्टेंस नए रन के साथ ओवरलैप हो जाता है, क्या मेरे पास एक ही समय में 2 डीएजीएस चलेंगे?

पहले ही, आपका बहुत धन्यवाद।

6
OCDev 20 मार्च 2021, 00:36

1 उत्तर

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

सेंसर में mode='rescheduler' का अर्थ है कि यदि सेंसर का मानदंड सही नहीं है तो सेंसर कार्यकर्ता को अन्य कार्यों के लिए छोड़ देगा। यह उन मामलों के लिए बहुत उपयोगी है जब सेंसर लंबे समय तक प्रतीक्षा कर सकता है।

  1. up_for_reschedule का अर्थ है कि कार्य विफल हो गया, लेकिन पुनर्प्रयासों की संख्या नहीं पहुंची है, इसलिए कार्य शेड्यूलर द्वारा पुनर्निर्धारित किए जाने की प्रतीक्षा कर रहा है।
  2. आप नहीं जानते कि कार्य कब चलेगा। यह अनुसूचक (उपलब्ध संसाधनों, प्राथमिकताओं आदि ..) पर निर्भर करता है। यदि आप समानांतर डैग रन की अनुमति नहीं देना चाहते हैं तो डीएजी कंस्ट्रक्टर में max_active_runs=1 का उपयोग करें।
5
Elad 21 मार्च 2021, 13:04