منصوبے کے بارے میں
یہ ریپازٹری مفت Render ویب سروس کے لیے ایک keep-alive میکانزم فراہم کرتی ہے۔ یہ GitHub Actions ورک فلو کو ایک چھوٹی Node.js اسکرپٹ کے ساتھ جوڑتی ہے جو ترتیب دیے گئے ٹارگٹ URL پر وقفے وقفے سے HTTP GET ریکوئسٹ بھیجتی ہے، تاکہ سروس غیرفعالیت کی وجہ سے سوی نہ کرے۔
جس مسئلے کو حل کیا گیا: GitHub Actions کا مفت شیڈولر مصروف سرورز پر مختصر کرون وقفوں، جیسے ہر 5 منٹ، میں تاخیر کر سکتا ہے، جس سے رنز کے درمیان خلا رہ جاتا ہے۔ Render فری ٹیر سروسز تقریباً 15 منٹ بغیر ٹریفک کے رہنے پر سو جاتی ہیں، اس لیے چھوٹی ہوئی پنگز کولڈ اسٹارٹس کا سبب بن سکتی ہیں۔
README میں بیان کردہ طریقہ:
- فعال 14 منٹ کا سیشن: ہر GitHub Actions جاب تقریباً 14 منٹ چلتی ہے اور ہر 4 منٹ بعد، 0، 4، 8 اور 12 منٹ پر، پنگ بھیجتی ہے۔
- متعدد کرون ٹرگرز: */10 * * * * اور 5,15,25,35,45,55 * * * * جیسے شیڈول استعمال کیے جاتے ہیں تاکہ نئے رنر سیشنز لانچ ہوتے رہیں۔
- بیان کردہ ہدف مسلسل کوریج ہے، کیونکہ فعال 14 منٹ کی ونڈو کے اندر ہر 4 منٹ بعد پنگز 15 منٹ کے غیرفعالیت تھریشولڈ سے نیچے رہتی ہیں۔
خصوصیات:
- Node.js 22 مقامی APIs: بلٹ ان fetch() اور node:timers/promises استعمال کرتی ہے، بغیر کسی بیرونی npm انحصار کے۔
- ریٹری لاجک: نیٹ ورک خرابیوں یا نان-2xx ریسپانسز پر 10 سیکنڈ کی تاخیر کے ساتھ زیادہ سے زیادہ 3 بار ریٹری کرتی ہے۔
- کنسول آؤٹ پٹ: ISO UTC ٹائم اسٹیمپس، HTTP اسٹیٹس کوڈز، ریسپانس ٹائمز ملی سیکنڈز میں، پاس/فیل نتائج اور سیشن سائیکل کاؤنٹس لاگ کرتی ہے۔
- مینوئل ٹرگرنگ: فوری رنز کے لیے workflow_dispatch کو سپورٹ کرتی ہے۔
کنفیگریشن: ٹارگٹ URL کو ping.js کے اوپر TARGET_URL کے طور پر بیان کیا گیا ہے، جو فی الحال Render کی میزبانی میں موجود اینڈ پوائنٹ کی طرف اشارہ کرتا ہے۔ اینڈ پوائنٹ تبدیل کرنے کے لیے اس کنسٹنٹ میں ترمیم کر کے تبدیلی پش کرنا ہوگی۔
ڈیپلائمنٹ: README صارفین کو ہدایت کرتا ہے کہ اپ ڈیٹ شدہ فائلوں کو کمٹ اور پش کر کے main برانچ پر بھیجیں، جس کے بعد GitHub Actions فعال پنگ سیشن شروع کر دیتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.