Fullstack Movie Streaming Project ကို လေ့လာနိုင်ပါပီ laravel + react js ကိုအသုံးပြုသွားမှာဖြစ်ပါတယ်။

0
76

Concept of jobs queue socket

Myo Thant Kyaw

မင်္ဂလာပါဗျ

ဒီနေ့ queue system အကြောင်း ကို features

လေးတစ်ခုကိုပြောပြရင်းနဲ့ရှင်းပြပေးပါမယ်။

programming stack တွေကို ဖယ်ထားပီး

concept ကိုသာ ဆွေးနွေးသွားမှာဖြစ်ပါတယ်။


ဒီထဲမှာ queue,event,task,event,socket တွေအကြောင်းကိုနားလည်သွားမယ်

လို့လည်းယူဆပါတယ်။


အရင်ဆုံး ကျွန်တော် ဖန်တီးချင်တဲ့ features လေးတစ်ခုအကြောင်း

ကိုအရင်ပြောပြပေးပါမယ်။


- 5GB လောက်ရှိတဲ့ file တစ်ခုကို webserver ကို upload လုပ် ပါမယ်။

- ဒီအချိန်မှာ 5GB ကို upload လုပ်ဖို့ နာရီဝက်နဲ့အထက်ကြာချိန်ရှိမှာဖြစ်ပါတယ်။

- အဲ့တစ်နေရာမှာပဲ နာရီဝက်လောက် ကြာနေတာက အသုံးပြုသူအတွက်အဆင်မပြေပါဘူး

- အဲ့တော့ upload လုပ်နေတုန်းမှာ app က အခြား features များကိုလည်း အသုံးပြုနေစေချင်ပါတယ်။


အထက်ကလို heavy task တွေ နဲ့ system resources သုံးတဲ့ task တွေကိုဖန်တီးရတဲ့

အခါမှာ queue system တွေအသုံးပြုရမှာဖြစ်ပါတယ်။


🟩 step 1

user က upload လုပ်ပီဆိုတာနဲ့ upload လုပ်ဖို့ function တစ်ခု စဖန်တီးပါမယ်။

(php post_max_size မှာသွားပြင်လိုက်တဲ့ နည်းလမ်းက အလုပ်လုပ်ပေမဲ့ server down သွားနိုင်ပါတယ်။)



🟩 step 2

upload function လေးထဲမှာ user ရွေးချယ်ထားတဲ့ file ကိုယူပီး

job တစ်ခုကိုခိုင်းပီး upload အရင်လုပ်ခိုင်းပါမယ်။ဒီ process လေးကို

jobs or task လို့ခေါ်ပါတယ်။

jobs or task တွေက background service တွေအနေနဲ့ အလုပ်လုပ်နေတာဖြစ်ပါတယ်။

ဒါကြောင့် app မှာ user က တခြားသူအသုံးပြုချင်တဲ့ features တွေ သုံးနိုင်သွားမှာဖြစ်ပါတယ်။


app မှာ တစ်ခုထက်ပိုတဲ့ jobs တွေရှိနေနိုင်ပါတယ်။

ဒါကို queue system က jobs တွေကို ထိမ်းသိမ်းတာတွေ လုပ်ပေးပါတယ်။


ဒါဆို queue နဲ့  jobs(background jobs or tasks) တွေကိုနားလည်သွားလောက်ပီ

လို့ထင်ပါတယ်။


🟩 step 3

ဒuser ဘက်မှာ upload ဘယ်လောက်လုပ်ပီးပီးဆိုတဲ့ progress ကို

ပြသချင်တယ်ဆိုပါစို့


ဒါဆိုရင် upload လုပ်နေတဲ့ jobs လေးထဲမှာ upload လုပ်ပီးတဲ့ percentage လေး

တွေတွက်ထုတ်ပီး realtime web socket သုံးပီး emit လုပ်လုပ် ပေးနေပါမယ်။

web socket emit လုပ်တဲ့အချိန်မှာ event(eg: laravel event) ကိုအသုံးပြုပေးရမှာဖြစ်ပါတယ်။


client(user) ဘက်မှာတော့ socket ကလာတာလေးတွေကို ဖမ်းယူပီးပြသထားခြင်းဖြင့်

upload progress ကိုမြင်နေရမှာဖြစ်ပါတယ်။


upload လုပ်တဲ့ task လေးပီးသွားပီဆိုရင်လည်း event တစ်ခုပို့ပီး 

user ကို upload လုပ်ပိးသွားကြောင်း  အကြောင်းကြားနိုင်မှာဖြစ်ပါတယ်။


ဒီသဘောတရားမှာဆိုရင် realtime data ပို့ဖို့ websocket ကိုအသုံးပြုပီးတော့

socket fire လုပ်ဖို့အတွက် event ကိုအသုံးချသွားတာဖြစ်ပါတယ်။


🟩 step 4

socket အသုံးမပြုချင်ရင်လည်းရပါတယ်။

log လိုဟာမျိုးအသုံးပြုနိုင်ပါတယ်။

upload task ထဲမှာ ဘယ်လောက်ပီးသွားကြောင်း log ထဲကို

သွားသိမ်းထားပါမယ်


client(user) ဘက်မှာတော့ 2s တစ်ခါ 

upload task ကမှတ်တဲ့ log ကိုဖတ်နေခြင်းဖြင့် 

upload progress ကိုပြသထားနိုင်မှာဖြစ်ပါတယ်။


ဒါဆိုရင် 

background jobs or tasks 

queue 

websocket 

event 

log 

ဒါတွေအကြောင်းနဲ့ ဘယ်အချိန်မှာ သုံးသင့်တာလည်းဆိုတာ အကြမ်းဖျဉ်း

နားလည်သွားမယ်ထင်ပါတယ်ဗျ။





Comment:
Please Login To Create Comment Login
Loading...