0 က်ဘ်အပလီကေးရှင်းများတိုးပွားလာသည်နှင့်အမျှကျွန်ုပ်တို့သည်အီးမေးလ်များ, ရုပ်ပုံပြုပြင်ခြင်း, အချက်အလက်ပို့ကုန်များ, တောင်းဆိုမှုလုပ်ငန်းစဉ်အတွင်းဤလုပ်ငန်းများကိုတိုက်ရိုက်လုပ်ဆောင်နေပါကစာမျက်နှာကိုဖြည်းဖြည်းချင်းသို့မဟုတ်အချိန်ကုန်ဆုံးရန်စာမျက်နှာကိုဖြစ်ပေါ်စေလိမ့်မည်။ ဤပြ problem နာကိုဖြေရှင်းရန် Laravel framework သည်အားကြီးသောတန်းစီ (Queues) function ကိုထောက်ပံ့ပေးသည်။
ဤဆောင်းပါးသည် Laravel framework တွင် Queue Configuration, Task Delation နှင့် Execute နှင့် Execute တို့ပါ 0 င်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် Laravel ရှိ Queue Driver ကို configure လုပ်ရန်လိုအပ်သည်။ စီမံကိန်းအတွင်းရှိ Config / Queue.php ဖိုင်ကိုဖွင့်ပြီးအောက်ပါပြင်ဆင်မှုအပိုင်းအစများကိုသင်တွေ့နိုင်သည်။
'default' => env('QUEUE_CONNECTION', 'sync'),
ပုံမှန်အားဖြင့် Laravel သည် ထပ်တူပြုခြင်း driver ကိုအသုံးပြုသည်။ ဆိုလိုသည်မှာ Queued မလုပ်ဘဲအလုပ်များကိုချက်ချင်းလုပ်ဆောင်သည်။ Task ကိုနောက်ခံတွင်အနှောင့်အယှက်ပေးရန်လုပ်ဆောင်ရန်ခွင့်ပြုရန်အတွက်၎င်းကို ဒေတာဘေ့စ် သို့မဟုတ် redis ကဲ့သို့သောယာဉ်မောင်းအမျိုးအစားသို့ပြောင်းလဲရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, ဒေတာဘေ့စ်ယာဉ်မောင်းကိုအသုံးပြုသောအခါ၎င်းကိုသင်ပြောင်းလဲနိုင်သည် -
'default' => env('QUEUE_CONNECTION', 'database'),
ထို့နောက်ဒေတာဘေ့စ် connection ကိုမှန်ကန်စွာ configure လုပ်ရန်သေချာစေရန်လိုအပ်သည်။ Config / Database.php ဖိုင်ရှိ connection settings ကိုကြည့်ပါ။ ဥပမာ -
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
// ...
],
],
အကယ်. သင်သည်လွတ်လပ်သောဒေတာဘေ့စ်၏ဆက်သွယ်မှုကိုအထူးသဖြင့်တပ်ဆင်လိုပါကဤနေရာတွင် ဆက်သွယ်ထားသော ဆက်သွယ်ရေးပုံစံအသစ်တစ်ခုကိုသင်ထည့်နိုင်သည်။
'connections' => [
// ...
'queue' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
// ...
],
],
Configuration ပြီးဆုံးသွားသောအခါဒေတာဘေ့စ်ပြောင်းရွှေ့ကြေးကိုဖွင့်လှစ်ပါ။
php artisan queue:table
php artisan migrate
Laravel တွင် Queue လုပ်ငန်းများကိုများသောအားဖြင့် POPTAREUE interface ကိုအကောင်အထည်ဖော်ခြင်းဖြင့်သတ်မှတ်သည်။ သင်သည် artisan command များကိုမြန်မြန်ဆန်ဆန်ပြုလုပ်နိုင်ရန်အတွက် artisan command များကိုသုံးနိုင်သည်။
php artisan make:job SendEmailJob
ထုတ်လုပ်ထားသော Task အတန်းအစားသည် အက်ပလီကေးရှင်း / အလုပ်များ လမ်းညွှန်တွင်တည်ရှိသည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
namespace App\Jobs;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class SendEmailJob implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public function __construct()
{
//
}
public function handle()
{
// အီးမေးလ်များပို့ခြင်း၏ယုတ္တိဗေဒကိုကိုင်တွယ်ပါ
}
}
အထက်ပါကုဒ်တွင်အလုပ်ကိုချက်ချင်းကွပ်မျက် မည့် အစား asynchronous execution အတွက်တန်းစီသို့တန်းစီသို့တွန်းပို့လိမ့်မည်ဟုညွှန်ပြသည်။ အီးမေးလ်များပို့ခြင်းသို့မဟုတ်အစီရင်ခံစာများကိုထုတ်လုပ်ခြင်းကဲ့သို့သောအသေးစိတ်အချက်အလက်များကို လက်ကိုင် နည်းလမ်းဖြင့်ရေးပါ။
Task Class Definition ပြီးဆုံးသောအခါကျွန်ုပ်တို့သည်လုပ်ငန်းကို Controller သို့မဟုတ် 0 န်ဆောင်မှုတွင်ပေးပို့နိုင်သည်။ ဥပမာအားဖြင့်:
use App\Jobs\SendEmailJob;
class SomeController extends Controller
{
public function sendEmail()
{
dispatch(new SendEmailJob());
// တုံ့ပြန်မှုတစ်ခုသို့မဟုတ်အခြားယုတ္တိဗေဒကိုပြန်သွားပါ
}
}
အသုံးပြုသူတောင်းဆိုချက်များကိုပိတ်ဆို့ခြင်းမရှိဘဲနောက်ခံရှိတန်းစီစနစ်ဖြင့်အလိုအလျောက်လုပ်ဆောင်ခြင်းကိုနောက်ခံဖြင့်အလိုအလျောက်လုပ်ဆောင်ခြင်းကိုအလိုအလျောက်လုပ်ဆောင်ပါလိမ့်မည် ။
နောက်ဆုံးအဆင့်မှာ Queue Processor ကို run ရန်ဖြစ်သည်။ Laravel သည် Queue လုပ်ငန်းများကိုစောင့်ကြည့်လေ့လာရန်နှင့် execute လုပ်ရန် command line tools များကိုထောက်ပံ့ပေးသည်။
php artisan queue:work
ဤ command သည်စဉ်ဆက်မပြတ်ပြေးနိုင်ပြီးအလုပ်များကိုတန်းစီတွင်အလိုအလျောက်လုပ်ဆောင်လိမ့်မည်။ SupernSeror ကဲ့သို့သောလုပ်ငန်းစဉ်စီမံခန့်ခွဲရေးကိရိယာများကိုလည်းတန်းစီပြုပြင်ခြင်းလုပ်ငန်းစဉ်၏တည်ငြိမ်မှုနှင့်အလိုအလျောက်ပြန်လည်စတင်ရန်သေချာစေရန်သင်ပြုလုပ်နိုင်သည်။
Laravel တွင်ရှိသောတန်းစီများကိုအသုံးပြုခြင်းသည်လျှောက်လွှာစွမ်းဆောင်ရည်နှင့်တုံ့ပြန်မှုမြန်နှုန်းကိုများစွာတိုးတက်စေနိုင်သည်။ Drivers, Defibuting Tasks နှင့် Flaige လုပ်ငန်းစဉ်များကိုစနစ်တကျပြင်ဆင်ခြင်းအားဖြင့် developer များသည်နောက်ခံအလုပ်များကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ အီးမေးလ်ပို့ခြင်းသို့မဟုတ်ရှုပ်ထွေးသောအချက်အလက်အပြောင်းအလဲများကိုပြုလုပ်သည်ဖြစ်စေ Laravel ၏ Queue System သည်သင်၏လျှောက်လွှာကိုပိုမိုထိရောက်စွာတည်ငြိမ်စေရန်ကူညီနိုင်သည်။
ဤဆောင်းပါးသည်သင့်အား Laravel စီ Queue များအသုံးပြုခြင်းနှင့်အမှန်တကယ်စီမံကိန်းများတွင်ပြောင်းလွယ်ပြင်လွယ်လျှောက်လွှာကိုအပြည့်အဝနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားအပြည့်အဝနားလည်နိုင်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။