jobs တွေကဘာတွေလည်း?
ဘယ်လိုနေရာတွေမှာသုံးရမှာလည်း
application တွေရဲ့ heavy process တွေဘယ်လိုထိမ်းသိမ်းမလည်း
hello အားလုံးမင်္ဂလာပါ
ဒီနေ့ကျွန်တော်တို့ Background Job , Queue Job တွေအကြောင်းဆွေးနွေးကြရအောင်
website တွေ app တွေရေးတဲ့အခါများမှာ သာမန် app မျိုးက ပြသနာမရှိပေမဲ့
movie streaming လို app မျိုး
file sharing app မျိုးအစရှိသဖြင့်ဒီလို
app တွေဖန်တီးတဲ့အခါမှာ တော့ နည်းနည်းပြသနာရှိလာပါပီ
movie streaming website မှာဆို movie တွေ server ပေါ်တင်ရပါတော့မယ်
programming language ဘက်နေကြည့်မယ်ဆိုရင်
အနည်း ဆုံး 1gb လောက်ရှိတဲ့ဇာတ်ကားတစ်ကားကို language တွေက accept မလုပ်ပါပါဘူး
ဆိုလိုတာတင်လို့မရဘူးပေါ့ဗျာ
နောက်ထပ် 1bg file ကိုတင်လို့ရတယ်ဆိုရင်
user က 1bg file တင်တဲ့အချိန်ကို ဘယ်မှမသွားဘာမှလုပ်မရ ပဲ ထိုင်
စောင့်နေရမှာပါ
အဲ့လိုပဲ file share site မှာ file တွေတင်ရင်လည်းအလားတူပါပဲ
နောက်ပြသနာတစ်ခုက
1gb file တစ်ခုကို app user 1000 က တင်နေတယ်ဆိုရင်
ပြသနာကစပါပီ server ကလည်းကောင်းဖို့လိုသလို
မိနစ်ပိုင်းအတွင်း server bandwidth 1tb ram cpu
အကုန်လုံး overload ဖြစ်လာမှာပါ
server ကောင်းကောင်း မဟုတ်ဘူးဆိုရင်ပေါ့
server ပါကျသွားမှာပါ။
(လမ်းကြောင်းတွေလဲွကုန်ပီ :P )
ဘယ်လိုဖြေရှင်းကြမလည်း
ခေါင်းစဉ်က jobတွေသုံးရမှာပါ
queue job(queueလို့အလွယ်ရေးပါမယ်)
တွေက heavy time consume heavy load features တွေကို
background မှာ run ပေးထားနိုင်ပါတယ်။
user က app ကိုပုံမှန်အတိုင်းသုံးနေနိုင်ပါတယ်။
1bg file တင်ဖို့ကိစ္စကို jobတွေကမလုပ်ပေးပါဘူးနော်
ဥပမာ
movie streaming web app တစ်ခုမှာ video upload တင်မဲ့အပိုင်းကို
ရောက်နေတယ်ဆိုပါစို့
form ကနေ user က movie တစ်ကားရွေးလိုက်မယ်
upload button ကိုနှိပ်ပီဆိုတာနဲ့ job ထဲမှာသွားသိမ်းထားလိုက်ပါမယ်
1gb file ကို upload လုပ်ဖို့ file တွေကို 2mb or 1mb လောက်ဆီ chunk
လုပ်ပီးတော့သိမ်းရမယ်ပေါ့
ဒီ task တွေအကုန် job တစ်ခုထဲပို့ထားလိုက်ပါမယ်
job ကသူလုပ်စရာရှိတဲ့ 2mb or 1mb စီကို background မှာ upload လုပ်ပေးနေပါလိမ့်မယ်
ဒါဆိုရင် user က upload လုပ်နေတာကိုထိုင်စောင့်နေစရာမလိုတော့ပါဘူး
ပိုပီး လုပ်ချင်တယ်ဆိုရင် websocket ကိုသုံးပီး job ပီးတာနဲ့
socket emit လုပ်ပီး task complete ဖြစ်ကြောင်း noti လေးပါပို့လိုက်ရင်တော့ရှယ်ပဲပေါ့ဗျာ။
အဓိကအားဖြင့် queue တွေကို အချိန်ကြာစေမဲ့ အလုပ်တွေရှိတဲ့အခါမျိုးမှာ
သုံးရမှာဖြစ်ပါတယ်
website user 1000 လောက်ကို email လှမ်းပို့ချင်တာမျိုးတွေပေါ့
အပေါ်ကလို large file upload လုပ်တာမျိုးတွေ
chat group user 100 လောက်ကို socket emit လုပ်တာမျိုးတွေပေါ့
ဒီလောက်ဆို queue job တွေကဘာတွေဆိုတာ
အနည်းအကျဉ်းနားလည်သွားလောက်ပီလို့ယူဆပါတယ်
သက်ဆိုင်ရာ language မလိုက် queue တွေရှိပါတယ်။
see you next article guyz 👊