तीन APIs साठी तीन स्लीप इंटरव्हल्स

मी एप्रिलमध्ये तीन डिरेक्टरी साइट्ससाठी ETL पाइपलाइन्स तयार केल्या. प्रत्येक साइट एक वेगळी API वापरते: Steam, GitHub आणि HuggingFace.

मला प्रत्येकासाठी स्लीप इंटरव्हल्स सेट करावे लागले. त्यांचे आकडे, फेल्युअर मोड्स आणि एरर हँडलिंग सर्व काही वेगळे आहे. मी काय वापरतो आणि का, ते खाली दिले आहे.

Steam: 250ms स्लीप

Steam चे डॉक्युमेंटेशन रेट लिमिट्सबद्दल (rate limits) अस्पष्ट आहे. कम्युनिटी डेटानुसार, प्रति IP दर ५ मिनिटांनी साधारण २०० रिक्वेस्ट्स मिळतात. याचा अर्थ १.५ सेकंदाचा इंटरव्हल सुरक्षित आहे.

त्याऐवजी मी 250ms वापरतो. माझे नाईटली जॉब फक्त ६० गेम एन्ट्रीज प्रोसेस करते. 250ms वर, एकूण स्लीप टाइम १५ सेकंद असतो. १.५ सेकंद असल्यास, तो ९० सेकंद होतो. जेव्हा तुम्ही अनेक साइट्स प्रोसेस करता, तेव्हा वेळ वाचवणे महत्त्वाचे असते.

जर Steam ने एरर दिला, तर जॉब थांबत नाही. तो एरर लॉग करतो आणि पुढच्या आयटमवर जातो. डेटा दुसऱ्या रात्री अपडेट केला जातो.

GitHub: 100ms sleep

GitHub खूप स्पष्ट आहे. अनऑथेंटिकेटेड (Unauthenticated) युजर्सना तासाला ६० रिक्वेस्ट्स मिळतात. टोकन असलेल्या युजर्सना तासाला ५,००० रिक्वेस्ट्स मिळतात.

मी शिष्टाचार म्हणून (politeness measure) 100ms स्लीप वापरतो. रेट लिमिटसाठी टोकन मुख्य काम करते. माझी पाइपलाइन कोअर REST API वापरते, सर्च API नाही. यामुळे खूप जास्त लिमिट्स मिळतात.

HuggingFace: कोणतीही स्लीप नाही

आठवडेभर नाईटली रन केल्यानंतरही मी कधीही रेट लिमिट गाठले नाही. रजिस्ट्री API माझ्यासारख्या बॅच टूल्ससाठीच डिझाइन केलेले आहे.

मी एकाच वेळी १०० मॉडेल्सपर्यंत फेच (fetch) करतो. लिमिट्स आणखी वाढवण्यासाठी मी ऑथेंटिकेशन टोकन वापरतो. १०० मॉडेल्ससाठी, कोणतीही स्लीप न ठेवणे हा सर्वात सोपा उपाय आहे.

सारांश तक्ता:

• Steam: 250ms स्लीप. नॉन-फेटल एरर्स (Non-fatal errors). • GitHub: 100ms स्लीप. नॉन-फेटल एरर्स (Non-fatal errors). • HuggingFace: कोणतीही स्लीप नाही. नॉन-फेटल एरर्स (Non-fatal errors).

स्लीप इंटरव्हल हा एक अंदाज आहे. खरी सुरक्षा मी एरर्स कसे हँडल करतो यावर अवलंबून आहे. प्रत्येक API कॉलमध्ये try/catch ब्लॉक वापरला जातो. जर एखादा कॉल फेल झाला, तर सिस्टम क्रॅश होण्याऐवजी फॉलबॅक रो (fallback row) लिहिते.

स्लीप इंटरव्हल तुम्ही किती वेळा लिमिट गाठता हे नियंत्रित करतो. एरर हँडलिंग तुम्ही लिमिट गाठल्यावर काय होते हे नियंत्रित करते.

स्त्रोत: https://dev.to/morinaga/three-sleep-intervals-for-three-apis-steam-250ms-github-100ms-huggingface-none-4ga7

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi