Render යනු සිසුන් සහ නවෝත්පාදකයින් අතර ජනප්රිය නොමිලේ හෝස්ට් කිරීමේ වේදිකාවකි. එහි නුසුදුසු පැත්තක් නම්, නොකඩවා HTTP ඉල්ලීම් නොලැබෙන විට සේවාව 15 මිනිත්තු පමණ නින්දට යාමයි. එවිට බොට් එකක් නැවත ක්රියාත්මක වීමට තවත් ඉල්ලීමක් එළඹෙන්නාක් තෙක් කාලයක් වැය වෙයි.
Discord, Telegram හෝ වෙබ් ස්ක්රැපර් බොට් වැනි Python වැඩසටහන්, නිතර සේවාදායකය සමඟ සම්බන්ධ නොවීම නිසා Render හි “sleep” තත්ත්වයට පත්වේ. මේ නිසා පරිශීලකයන්ට හෝ බොට්ගේ polling loop එකට මිනිත්තු කිහිපයක් ප්රතිචාරයක් ලැබෙන්නේ නැත.
Render හි free tier එකේ අවශ්යතාවක් වන්නේ, ඔබේ යෙදුම PORT පරිසර විචල්යයෙන් ලබා දෙන පෝට් එකකට සවන් දෙන්නා බවයි. බොට් එකක් සාමාන්යයෙන් HTTP පෝට් එකක් අරඹන්නේ නැති නිසා, Render හි health check එක එය අසාර්ථක ලෙස සැලකේ. ඒ නිසා බොට් එකට අමතරව කුඩා HTTP සේවාදායකයක් එක් කිරීම අත්යවශ්ය වේ.
StayPresent යනු එම අවශ්යතාවය සපුරාලන, Python බොට් සමඟ සරලව ක්රියා කරන ලයිබ්රරියකි. පළමුව pip install staypresent[prod] මඟින් ස්ථාපනය කර, main.py ෆයිලයේ පහත කේතය එක් කරන්න:
- import os
- import staypresent
- staypresent.web.json({"status": "running", "service": "my-telegram-bot"})
- staypresent.run("bot.py", port=int(os.getenv("PORT", 8080)))
Render හි start command එක සරලව python main.py ලෙස සකස් කළහොත්, බොට් එක සහ HTTP සේවාදායකය එකවර ක්රියාත්මක වේ.
StayPresent ස්වයංක්රීයව /health මාර්ගය හරහා සත්යාපන පරීක්ෂාව ලබා දෙයි. ඔබට Render dashboard එකේ health check path එක /health ලෙස සකස් කර, මුල් මාර්ගය (/) හි වෙනත් තොරතුරු (status page, JSON) පෙන්විය හැක.
සේවාව නින්දට පත්වීම වැලැක්වීමට, StayPresent හි cron ක්රමය භාවිතා කර, ඔබේ යෙදුමේ පොදු URL එකට 4 මිනිත්තුකට එක් වරක් ping කරනු ලබයි. මෙය Render අතුරින් “incoming traffic” ලෙස ගණනය වේ, එවිට නින්ද තත්ත්වය නැවත සිදුවන්නේ නැත.
බොට් එකක් අසාර්ථක වූ විට (API දෝෂ, ජාල ගැටළුව, exception) StayPresent ස්වයංක්රීයව ප්රොසෙසය නැවත ආරම්භ කරයි. restart_on_crash=True, max_restarts=5 වැනි පරාමිතීන් සැකසීමෙන්, අවශ්ය පරිදි පනස් මාරු කිරීම් සීමා කර, පද්ධතියේ ස්ථාවරතාවය රඳවා ගත හැක.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ ඩෙවලපර්ස්, විශ්වවිද්යාල සිසුන් හා ස්මාල් බිස්නස් හිමියන්, Render වැනි නොමිලේ හෝස්ට් සේවාවන් භාවිතා කරයි. StayPresent එක් කිරීමෙන්, බොට් හෝ scraper එකක් නින්දට පත් නොවී 24/7 ක්රියාත්මක කර ගත හැකි බැවින්, ප්රොජෙක්ට් ඉදිරිපත් කිරීමේ වේගය වැඩිවේ. එමෙන්ම, ක්ලවුඩ් පරිසරයේ health check හා auto‑restart වැනි විශේෂාංගයන් ඉගෙන ගැනීම, දේශීය තාක්ෂණික ප්රවීණතාවය උසස් කරයි. ව්යාපාරික පැතිකඩේ, කාර්ය සාධන බොට් (customer support, notification) නිතර නින්දට නොයන නිසා, සේවා ගුණාත්මකත්වය සහ පාරිභෝගික සතුට වැඩි වේ.
ඉතින්, StayPresent සමඟ Render හි Python බොට්වල නින්ද නැතිව, ස්ථාවර, වේගවත් හා ආරක්ෂිත සේවාවක් ලබා ගැනීමට අවශ්ය සියලුම උපකරණ ඔබට ලැබේ. මෙය ලංකාවේ තාක්ෂණික පරිසරය ඉදිරියට ගෙන යාමේ නව මාර්ගයක් බවට පත්වේ.