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

Kafka නොව PostgreSQL සමඟ ජොබ් කතෝලිකය නිර්මාණය – ඉන්ප්‍රාස්ට්‍රක්චර් අවශ්‍ය නැතිව!

Kafka නොව PostgreSQL සමඟ ජොබ් කතෝලිකය නිර්මාණය – ඉන්ප්‍රාස්ට්‍රක්චර් අවශ්‍ය නැතිව!

ජොබ් කතෝලික (Job Queue) සඳහා RabbitMQ හෝ Kafka වැනි පණිවිඩ බ්‍රෝකර් භාවිතා කිරීම සාමාන්‍යයයි. නමුත් ඒවා ස්ථාපනය, නිරීක්ෂණ සහ නඩත්තු කිරීමේ බර වැඩි වේ. PostgreSQL දත්ත ගබඩාවක් භාවිතා කරමින් ඒ බර නොමැතිව කතෝලිකයක් සකස් කළ හැකිද? මේ ලිපියේ ලේඛකයා ඒ සත්‍යය පෙන්වා දෙයි.

ජොබ් කතෝලිකයක් සඳහා අවශ්‍ය මූලික ලක්ෂණ වන්නේ: ස්ථිරත්වය (crash වුවත් දත්ත අහිමි නොවීම), එක් වරක් පමණක් සකස් කිරීම, සහ තත්ත්ව නිරීක්ෂණ (pending, processing, completed, failed). PostgreSQL මේ සියල්ල ස්වභාවිකව ලබා දෙයි, මන්ද සියලු ජොබ් එකක් වගුවක පේළියක් වශයෙන් රඳා පවතින බැවින් ක්‍රැෂ් එකක් සිදු වුවත් පේළිය නැති නොවේ.

සමකාලීනව බහුකාර්යකාරී (workers) එකම ජොබ් එක ගන්නා අවදානමක් තිබේ. ඒ සඳහා PostgreSQL හි FOR UPDATE සහ SKIP LOCKED යන SQL විකල්ප භාවිතා කරයි. වැඩකරන්නා (worker) ජොබ් එක තෝරා ගත් පසු පේළිය අගුළු දමා, අනෙක් workers ඒ අගුළු පේළිය මඟ හැරී වෙනත් පේළියක් ගනී. මෙය තේරුම් ගත හැකි සරල SQL ප්‍රශ්නයක්:

BEGIN;
SELECT * FROM jobs WHERE status='pending' AND schedule_at<=NOW() ORDER BY priority DESC, created_at ASC LIMIT 1 FOR UPDATE SKIP LOCKED;
UPDATE jobs SET status='processing' WHERE id=$1;
COMMIT;

උදාහරණයක් ලෙස, 3 workers එකවර ක්‍රියාත්මක කර 100 ජොබ් ක්‍රියාත්මක කළ විට, එක් එක් worker එකට වෙන වෙනම ජොබ් ලැබුණි, දෙවරක් ගත නොවීය. සම්පූර්ණව 100 ජොබ් සම්පූර්ණ වූ අතර duplicate කිසිවක් නොතිබුණි. මෙය PostgreSQL සමඟ කතෝලිකයක් සාර්ථකව ක්‍රියාත්මක කළ හැකි බව සනාථ කරයි.

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

ශ්‍රී ලංකාවේ තරුණ සංවර්ධකයින්, ආරම්භක ව්‍යාපාරිකයින් සහ මධ්‍යම-වර්ග ව්‍යාපාර සඳහා මෙම පදනම විශාල වාසියක් ගෙන දෙයි:

  • ආධාරක පිරිවැය අඩු කිරීම: නව බ්‍රෝකර් සේවා ස්ථාපනය නොකළ හැකි බැවින් සර්වර්, Docker, Kubernetes වැනි අමතර ව්‍යුහයන් ගත කරන පිරිවැය ඉතා අඩු වේ.
  • ඉගෙනීමේ කාලය කෙටි කිරීම: PostgreSQL දැනටමත් බොහෝ ආයතන භාවිතා කරන බැවින්, එය භාවිතා කරමින් කතෝලිකයක් සකස් කිරීමේ දැනුම තත්කාලිකවම වැඩි වේ.
  • ස්ථානයේම පරිපාලනය: දත්ත ගබඩාවේ අගුළු (locking) යාම නිසා, දේශීය දත්ත ආරක්ෂණ නීති හා GDPR‑වලට අනුකූලව පාලනය කළ හැක.
  • ඉදිරි ක්‍රියාකාරකම් සඳහා පදනම: මෙම තාක්‍ෂණය භාවිතා කරලා, පසුකාලීනව Event‑Driven Architecture හෝ Microservices පද්ධතියට පහසුවෙන් පරිවර්තනය කළ හැක.

නමුත්, මෙම ක්‍රමය සීමා ඇති බව අමතක නොකළ යුතුයි. Workers සෑම විටම පෝලින් (polling) කරන බැවින්, පරමාර්ථය හිස් queue එකේදීමත් CPU හා I/O පරිභෝගය වැඩි වේ. වැඩි throughput අවශ්‍ය නම්, සත්‍ය message broker එකක් භාවිතා කිරීම හොඳය.

සාරාංශය වශයෙන්, PostgreSQL භාවිතා කරමින් කතෝලිකයක් සකස් කිරීම, ඉන්ප්‍රාස්ට්‍රක්චර් බර අඩු කර, ශ්‍රී ලංකාවේ තාක්‍ෂණික සංවර්ධනයට නව මාර්ගයක් ගෙන දෙයි.

💡 ඔබේ ව්‍යාපාරයට PostgreSQL කතෝලිකය අත්හදා බලන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#PostgreSQL #JobQueue #SQL #SriLankaTech #Developers