လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Laravel adauds ရှင်းပြသည် - Laravel တွင်နောက်ခံအလုပ်များကိုထိရောက်စွာကိုင်တွယ်ရန်လမ်းညွှန်အပြည့်အစုံ

Laravel adauds ရှင်းပြသည် - Laravel တွင်နောက်ခံအလုပ်များကိုထိရောက်စွာကိုင်တွယ်ရန်လမ်းညွှန်အပြည့်အစုံ

M66 2025-10-11

နိဒါန်း

0 က်ဘ်အပလီကေးရှင်းများတိုးပွားလာသည်နှင့်အမျှကျွန်ုပ်တို့သည်အီးမေးလ်များ, ရုပ်ပုံပြုပြင်ခြင်း, အချက်အလက်ပို့ကုန်များ, တောင်းဆိုမှုလုပ်ငန်းစဉ်အတွင်းဤလုပ်ငန်းများကိုတိုက်ရိုက်လုပ်ဆောင်နေပါကစာမျက်နှာကိုဖြည်းဖြည်းချင်းသို့မဟုတ်အချိန်ကုန်ဆုံးရန်စာမျက်နှာကိုဖြစ်ပေါ်စေလိမ့်မည်။ ဤပြ problem နာကိုဖြေရှင်းရန် Laravel framework သည်အားကြီးသောတန်းစီ (Queues) function ကိုထောက်ပံ့ပေးသည်။

ဤဆောင်းပါးသည် Laravel framework တွင် Queue Configuration, Task Delation နှင့် Execute နှင့် Execute တို့ပါ 0 င်သည်။

Queue ကို configure

ပထမ ဦး စွာကျွန်ုပ်တို့သည် 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 လုပ်ငန်းတာဝန်များကို execute လုပ်ပါ

နောက်ဆုံးအဆင့်မှာ 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 များအသုံးပြုခြင်းနှင့်အမှန်တကယ်စီမံကိန်းများတွင်ပြောင်းလွယ်ပြင်လွယ်လျှောက်လွှာကိုအပြည့်အဝနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားအပြည့်အဝနားလည်နိုင်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။

မကြာသေးမီ ဆောင်းပါးများ