ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-27, Monday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

Go වෙබ් පූෂ් පද්ධතියේ අක්‍රිය සබ්ස්ක්‍රිප්ෂන් මකා දැමීමේ නිරවද්‍යතා

Go වෙබ් පූෂ් පද්ධතියේ අක්‍රිය සබ්ස්ක්‍රිප්ෂන් මකා දැමීමේ නිරවද්‍යතා

Go භාෂාවෙන් ලියන ලද AI කාර්ය කළමනාකරණ පද්ධතියක, වෙබ් පූෂ් (Web Push) නෝටිෆිකේෂන් යවන කොඩ් එකේ අන්‍යෝන්‍ය වැරදික් හඳුනාගන්නා ලදී. මෙය සාර්ථක HTTP පිළිතුරක් (410 Gone) ලැබුණාමද, එම අවලංගු සබ්ස්ක්‍රිප්ෂන් මකා දැමීමට අවශ්‍ය කේතය ක්‍රියා නොකරන තත්වයක්.

කොඩ් එකේ push.sendToUser ප්‍රකාරය පරිශීලකගේ බ්‍රව්සර පූෂ් සබ්ස්ක්‍රිප්ෂන් ගණනක් මත පරීක්ෂා කර, webpush.SendNotification ක්‍රියාවලියෙන් පසු දෝෂයක් ඇතිදැයි පරීක්ෂා කරයි. දෝෂයක් ඇත්නම් resp හි StatusCode 410 නම් සබ්ස්ක්‍රිප්ෂන් මකා දැමිය යුතුයි. නමුත් webpush-go පුස්තකාලය http.Client.Do ආපසු දෙන්නේ, සම්බන්ධතා ගැටලුවක් (DNS හෝ සම්බන්ධතා අසාර්ථකත්වය) නම් (nil, err) ලෙස, 410 වැනි සත්‍යාපිත පිළිතුරක් ලැබුනොත් (resp, nil) ලෙස. එම නිසා err != nil වන විට resp හි අගය නැත, 410 පිළිතුර ලැබුනොත් err හි අගය නැත. මේ දෙකේ සම්බන්ධතාවය අසම්භවය නිසා, අවලංගු සබ්ස්ක්‍රිප්ෂන් මකා දැමීමේ කොඩ් එක කිසිවිටෙකත් ක්‍රියා නොකරයි.

ඉතිරි ප්‍රතිඵලයක් ලෙස, push_subscriptions වගුවේ අවලංගු පේළි එකතු වෙමින් පවතී. පද්ධතියේ ඕනෑම නව සිදුවීමක් (කාර්යය, පණිවිඩ) මේ අකාරයෙන් අවලංගු URL වෙත HTTP ඉල්ලීම් එවීමේ පිරිවැය එක්වෙයි. එය සීමා රහිතව, සෑම අවලංගු සබ්ස්ක්‍රිප්ෂන් එකකටම එක් එක් ඉල්ලීමක් සිදු කරයි. මෙම ගැටළුව තත්කාලික අධික පීඩනයක් නොවන අතර, කාලයත් සමඟ පිරිවැය ස්ථිරව වැඩි වෙමින් පවතී.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

  • ඩිවෙලපර්ලාට: Go භාෂාව සහ HTTP පාරිභෝගික API භාවිතයේ වැරදි අර්ථකථනයක් ගැන අවධානය යොමු කරයි. මෙවැනි නිරවද්‍යතා අනාගත ව්‍යාපෘති වලදී පරීක්ෂා කිරීමේ වැදගත්කම ඉහළ දර්ශනය කරයි.
  • ඉගෙනුම් ආකාරයට: සිසුන්ට HTTP පිළිතුරු හා දෝෂයන් අතර වෙනස කෙරෙහි අවධානය යොමු කිරීම, අභ්‍යන්තර ලොජික් නිවැරදිව ලියීමට මාර්ගෝපදේශයක් වේ.
  • ව්‍යාපාරිකයින්ට: පාරිභෝගික පූෂ් සේවාවන්හි අකාරාධික පරිශීලක දත්ත නඩත්තු කිරීමේ පිරිවැය තේරුම් ගැනීමට, සම්පත් සලසන ප්‍රතිකාර සැලසුම් සැලසුම් කිරීමේ අවශ්‍යතාවය පෙන්වයි.

මෙම ගැටළුව සම්පූර්ණයෙන්ම කේතයෙහි ලොජික් නිවැරදි කිරීමෙන් විසඳිය හැක. err සහ resp දෙකේම තත්ත්වය පරීක්ෂා කර, 410 පිළිතුර ලැබුනොත් සබ්ස්ක්‍රිප්ෂන් මකා දැමීමට නව කොන්දේසියක් එක් කිරීම ප්‍රමාණවත් වේ. මෙය පද්ධතියේ කාර්යක්ෂමතාවය වැඩි කර, අඛණ්ඩ HTTP ඉල්ලීම් වලින් සිදුවන අතිරේක පිරිවැය ඉවත් කරයි.

අවසන් වශයෙන්, මෙවැනි “නිහතමානී” දෝෂයන් සොයාගැනීමට කේත පරික්ෂණය, ලොග් විශ්ලේෂණය සහ පරිසර සැකසුම් පිළිබඳ අවධානය අවශ්‍ය බව තහවුරු කරයි.

💡 ඔබේ පද්ධතියේ Web Push ලොජික් පරීක්ෂා කර බලන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Go #WebPush #Bug #Backend #SriLanka