इस प्रोजेक्ट के बारे में

यह रिपॉज़िटरी मुफ़्त 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 सक्रिय पिंग सत्र शुरू करता है।