Thuta Learning
ရှာဖွေရန်
Redis
ProjectsData & Databasesbeginner

Project 5 — Stream Job Queue

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Project 5 — Stream Job Queue concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • နမူနာ Redis command/code ကို ကိုယ်တိုင် run ပြီး output စစ်နိုင်ရန်
  • Tutorial Platform project နှင့် production scenario တွင် မှန်ကန်စွာအသုံးချနိုင်ရန်

နားလည်ထားရမယ့် အချက်

Stream job queue ကို at-least-once delivery အဖြစ်ဒီဇိုင်းလုပ်ရပါတယ်။ Job payload သေးသေးနဲ့ immutable IDs ပို့၊ durable details ကို DB မှဖတ်၊ side effects ကို idempotency key ဖြင့်ကာကွယ်ရပါတယ်။ Retry count၊ exponential backoff၊ poison-message dead letter၊ pending reclaim နဲ့ retention လိုပါတယ်။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Email worker group တည်ဆောက်ပြီး `BLOCK` read၊ bounded concurrency၊ send success နောက် ACK လုပ်မယ်။ Failure count ကို metadata/hash ထဲတိုး၊ threshold ကျော်လျှင် dead-letter stream သို့ original ID/reason ထည့်ပြီး ACK လုပ်မယ်။ Shutdown တွင် new reads ရပ်၊ in-flight jobs finish/leave pending လုပ်မယ်။

အတူတူ စမ်းရေးကြည့်မယ်

typescript
const jobs = await redis.xReadGroup('emailers', workerId,
  [{ key: 'stream:email', id: '>' }], { COUNT: 10, BLOCK: 5000 });
for (const job of jobs ?? []) {
  await withIdempotency(job.id, () => sendEmail(job.message));
  await redis.xAck('stream:email', 'emailers', job.id);
}
You should see
Crash recovery လုပ်နိုင်ပြီး duplicate side effects ကိုကာကွယ်ထားသော worker ရမည်။

၅ မိနစ် စမ်းကြည့်

Retry 3 ကြိမ်နောက် DLQ သို့ပို့သော flow နဲ့ operator replay checklist ရေးပါ။

သတိလေးတစ်ချက်

Stream trim ကို pending entries မစဉ်းစားဘဲ aggressive လုပ်ရင် recovery လို message data ပျောက်နိုင်ပါတယ်။

Redis — StreamsRedis

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Stream trim ကို pending entries မစဉ်းစားဘဲ aggressive လုပ်ရင် recovery လို message data ပျောက်နိုင်ပါတယ်။
  • နမူနာ command ကို production Redis ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test instance နဲ့ recoverable data ပေါ်တွင် အရင်အတည်ပြုပါ။

လေ့ကျင့်ခန်း

Retry 3 ကြိမ်နောက် DLQ သို့ပို့သော flow နဲ့ operator replay checklist ရေးပါ။

You'll know it worked when: Crash recovery လုပ်နိုင်ပြီး duplicate side effects ကိုကာကွယ်ထားသော worker ရမည်။

Project 5 — Stream Job Queue | Thuta Learning