လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP နှင့် MySQL ရှိ Queue နှောင့်နှေးမှုအတွက်လက်တွေ့ကျသော application လမ်းညွှန်အတွက်လမ်းညွှန်လမ်းညွှန်

PHP နှင့် MySQL ရှိ Queue နှောင့်နှေးမှုအတွက်လက်တွေ့ကျသော application လမ်းညွှန်အတွက်လမ်းညွှန်လမ်းညွှန်

M66 2025-10-05

နိဒါန်း

အချိန်နှင့်တပြေးညီအင်တာနက် 0 န်ဆောင်မှုများ၏အတိအကျအတွက်လိုအပ်ချက်များအနေဖြင့်ဆက်လက်တိုးပွားလာသည်။ ဤဆောင်းပါးသည် PHP နှင့် MySQL တို့တွင်ဤအလုပ်အမျိုးအစားနှစ်မျိုးကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီး developer များလျင်မြန်စွာစတင်ရန်ကူညီရန်လက်တွေ့ကျကျကျင့်သုံးပါ။

application life နှောင့်နှေးအလုပ်များ၏လျှောက်လွှာဇာတ်လမ်းတွဲ

နှောင့်နှေးခြင်းများနှောင့်နှေးခြင်းများသည်အလုပ်များကိုတန်းစီရန်, SMS စိစစ်ရေးဆိုင်ရာကုဒ်များကိုပို့ခြင်း, အီးမေးလ်များပို့ခြင်း, အီးမေးလ်များပို့ခြင်းကဲ့သို့သောနှောင့်နှေးမှုအပြောင်းအလဲများအတွက်မကြာခဏအသုံးပြုလေ့ရှိသည်။

PHP တွင် Redis ကို Queue Service အဖြစ်အသုံးပြုနိုင်ပြီးနှောင့်နှေးခြင်းလုပ်ငန်းစီမံခန့်ခွဲမှုများကို PHP ၏ Redis ၏သက်တမ်းတိုးခြင်းဖြင့်အကောင်အထည်ဖော်နိုင်သည်။

Code Perfection:

 // ဆက်Redisဆာဆာ
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// အလုပ်များကိုတန်းစီသို့ထည့်ပါ,နှောင့်နှေးအချိန်ကိုသတ်မှတ်ပါ60စက်ဏန့်
$job = [
    'to' => 'example@example.com',
    'subject' => 'Test Email',
    'content' => 'Hello, World!'
];
$delay = 60;
$redis->zAdd('delayed_queue', time() + $delay, json_encode($job));

// Queue မှနှောင့်နှေးအချိန်နှင့်အတူအလုပ်များကိုပြန်လည်ရယူ,နှင့် execute
while (true) {
    $jobs = $redis->zRangeByScore('delayed_queue', 0, time(), ['limit' => [0, 1]]);
    if (!empty($jobs)) {
        $job = array_shift($jobs);
        // တာဝန်များကိုလုပ်ဆောင်
        sendEmail(json_decode($job, true));
        // Queue မှကွပ်မျက်ထားသောအလုပ်များကိုဖျက်ပါ
        $redis->zRem('delayed_queue', $job);
    }
    // အိပ်နေခြင်း1စက်ဏန့်后继续检查队列
    sleep(1);
}

အထက်ပါကုဒ်သည် Redis ကိုမည်သို့ချိတ်ဆက်ရမည်, အလုပ်များကိုနှောင့်နှေးမှုတန်းသို့မည်သို့ထည့်သွင်းရမည်ကိုပြသသည်။

အချိန်ကိုက်အလုပ်များအတွက်လျှောက်လွှာအခြေအနေများ

အချိန်ကိုက်အလုပ်များသည်တစ်ရက်သို့မဟုတ်တစ်နာရီတစ်ကြိမ်, တစ်နာရီသို့မဟုတ်တစ်ကြိမ်ကဲ့သို့ကြိုတင်သတ်မှတ်ထားသောအချိန်ကြားကာလတွင်လုပ်ငန်းများကိုလုပ်ဆောင်သည်။ အများအားဖြင့်ဒေတာအရန်ကူးခြင်းနှင့် log သန့်ရှင်းရေးကဲ့သို့သောအခါအားလျော်စွာလုပ်ငန်းဆောင်တာများတွင်အသုံးပြုသည်။

PHP တွင်အချိန်ကိုက်အလုပ်များကို crontab command မှတဆင့်စီစဉ်ထားသည်။

Code Perfection:

 // fixed-time အလုပ်များကိုလုပ်ဆောင်ပါ
function doTask() {
    echo "Fixed time task executed.";
}

// Periodic အလုပ်များလုပ်ဆောင်ပါ
function doPeriodicTask() {
    echo "Periodic task executed.";
}

// နံနက်တိုင်းတစ်ကြိမ် execute လုပ်ဖို့သတ်မှတ်ပါ
$cron = '0 0 * * *';
exec("crontab -l > tmpcron");
file_put_contents("tmpcron", "$cron php -f /path/to/task.php >> /path/to/output.log 2>&1", FILE_APPEND);
exec("crontab tmpcron");

// နာရီကိုသတ်မှတ်ပါ5မိနစ်အတွင်းပြီးတစ်ကြိမ် execute
$cron = '5 * * * *';
exec("crontab -l > tmpcron");
file_put_contents("tmpcron", "$cron php -f /path/to/task.php >> /path/to/output.log 2>&1", FILE_APPEND);
exec("crontab tmpcron");

// တာဝန်များကိုလုပ်ဆောင်
doTask();
doPeriodicTask();

Fixed Time Tasks and Periodic လုပ်ငန်းများကိုကုဒ်နံပါတ်တွင်သတ်မှတ်ထားသည်။ အလိုအလျောက်ကွပ်မျက်မှုကိုသေချာစေရန်အတွက် tasks system task list တွင် tasks task list တွင်ထည့်သွင်းထားသည်။

အကျဉ်းချုပ်

PHP နှင့် MySQL ဖွံ့ဖြိုးတိုးတက်မှုတွင် Queue နှောင့်နှေးမှုများနှင့်အချိန်ကိုက်ခြင်းလုပ်ငန်းများနှင့်အချိန်ကိုက်ခြင်းလုပ်ငန်းများသည်အချိန်နှင့်တပြေးညီနှင့်အလိုအလျောက်အဆင့်ကိုတိုးတက်ကောင်းမွန်စေနိုင်သည်။ နှောင့်နှေးခြင်းများနှောင့်နှေးမှုနှောင့်နှေးရန်နှောင့်နှေးရန်လိုအပ်သည့်လုပ်ဆောင်မှုများအတွက်လုပ်ဆောင်ရန်အတွက်သင့်လျော်သည်။ ဤဆောင်းပါး၏နမူနာကုဒ်မှတဆင့် developer များကဤလုပ်ဆောင်မှုများကိုလျင်မြန်စွာအကောင်အထည်ဖော်နိုင်ပြီးအမှန်တကယ်စီးပွားရေးလိုအပ်ချက်များနှင့်အညီတိုးတက်အောင်လုပ်နိုင်သည်။

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