इस प्रोजेक्ट के बारे में
यह रिपॉज़िटरी मुफ़्त Render वेब सेवा के लिए keep-alive तंत्र प्रदान करता है। यह एक GitHub Actions वर्कफ़्लो को एक छोटी Node.js स्क्रिप्ट के साथ जोड़ता है, जो कॉन्फ़िगर किए गए target URL पर समय-समय पर HTTP GET अनुरोध भेजती है, ताकि सेवा निष्क्रियता के कारण स्लीप न करे।
संबोधित समस्या: GitHub Actions का मुफ़्त शेड्यूलर सर्वर व्यस्त होने पर हर 5 मिनट जैसे छोटे cron अंतराल में देरी कर सकता है, जिससे रन के बीच अंतराल रह जाता है। Render फ्री-टियर सेवाएँ बिना ट्रैफ़िक के लगभग 15 मिनट बाद स्लीप करती हैं, इसलिए छूटे हुए पिंग कोल्ड स्टार्ट का कारण बन सकते हैं।
README में वर्णित दृष्टिकोण:
- सक्रिय 14 मिनट का सत्र: प्रत्येक GitHub Actions जॉब लगभग 14 मिनट चलता है और हर 4 मिनट में (0, 4, 8 और 12 मिनट पर) पिंग भेजता है।
- एकाधिक cron ट्रिगर: */10 * * * * और 5,15,25,35,45,55 * * * * जैसे शेड्यूल उपयोग किए जाते हैं, ताकि नए runner सत्र लॉन्च होते रहें।
- घोषित लक्ष्य निरंतर कवरेज है, क्योंकि सक्रिय 14 मिनट की विंडो में हर 4 मिनट में पिंग 15 मिनट की निष्क्रियता सीमा से नीचे रहते हैं।
विशेषताएँ:
- Node.js 22 देशी API: बिना बाहरी npm डिपेंडेंसी के अंतर्निहित fetch() और node:timers/promises का उपयोग करता है।
- रिट्री तर्क: नेटवर्क त्रुटियों या non-2xx प्रतिक्रियाओं पर 10 सेकंड की देरी के साथ 3 बार तक रिट्री करता है।
- कंसोल आउटपुट: ISO UTC टाइमस्टैम्प, HTTP स्टेटस कोड, मिलीसेकंड में प्रतिक्रिया समय, pass/fail परिणाम और सत्र चक्र गणना लॉग करता है।
- मैनुअल ट्रिगरिंग: तत्काल रन के लिए workflow_dispatch का समर्थन करता है।
कॉन्फ़िगरेशन: target URL को ping.js के शीर्ष पर TARGET_URL के रूप में परिभाषित किया गया है, जो वर्तमान में Render-होस्टेड एंडपॉइंट की ओर इंगित करता है। एंडपॉइंट बदलने के लिए उस कॉन्स्टेंट को संपादित करना और परिवर्तन पुश करना आवश्यक है।
डिप्लॉयमेंट: README उपयोगकर्ताओं को अपडेट की गई फ़ाइलों को main शाखा में कमिट और पुश करने का निर्देश देता है, जिसके बाद GitHub Actions सक्रिय पिंग सत्र शुरू करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.