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

PHP Queue တွင်ပေးပို့ခြင်းမက်ဆေ့ခ်ျပို့ရန်လက်တွေ့ကျသောနည်းလမ်းများနှင့်ဥပမာများ

M66 2025-07-23

နှောင့်နှေးနေသည့်မက်ဆေ့ခ်ျများပေးပို့ခြင်းသည် PHP Queue မှတဆင့်အောင်မြင်သည်

ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်း SMS စိစစ်ရေးဆိုင်ရာကုဒ်များ, system notifications စသဖြင့်မက်ဆေ့ခ်ျပို့ခြင်းများကိုနှောင့်နှေးရန်လိုအပ်ခြင်းသည် PHP equeues များကိုအားဖြည့်တင်းပေးနိုင်သည်။ ဤဆောင်းပါးသည် Redis ကို Realis server တစ်ခုအဖြစ်အသုံးပြုရန်ဖြေရှင်းရန်အဖြေကိုမိတ်ဆက်ပေးလိမ့်မည်။ မြန်မြန်ဆန်ဆန်စတင်ရန်ကူညီရန် PHP နမူနာကုဒ်များတပ်ဆင်ထားသည်။

RETIS ကို QUESESERS အဖြစ်အသုံးပြုပါ

Redis သည်စွမ်းဆောင်ရည်မြင့်မားသော In-memory database ဖြစ်ပြီးစာရင်းများနှင့်အမိန့်ရေးဆွဲထားသော collection များအပါအ 0 င်အချက်အလက်ဖွဲ့စည်းပုံအမျိုးမျိုးကိုထောက်ပံ့သောအချက်အလက်အမျိုးမျိုးကိုထောက်ပံ့သည်။ ပထမ ဦး စွာဆာဗာပေါ်ရှိ Redis နှင့်သက်ဆိုင်ရာ PHP extension ကို install လုပ်ရန်လိုအပ်သည်။ Ubuntu System တွင် install လုပ်ရန်အောက်ပါ command ကိုသုံးနိုင်သည်။

 sudo apt-get redis-server ကို install လုပ်ပါ
sudo apt-get install PHP-Redis ကို install လုပ်ပါ

တပ်ဆင်မှုပြီးဆုံးပါကအောက်ပါကုဒ်သည် Redis ဆာဗာနှင့်မည်သို့ချိတ်ဆက်ရမည်ကိုပြသသည်။

 $ redis = အသစ် (Redis);
$ Redis-> Connect ('127.0.0.1), 6379,

နှောင့်နှေးမက်ဆေ့ခ်ျများပေးပို့ခြင်းအကောင်အထည်ဖော်

အောက်ဖော်ပြပါဥပမာတွင် Redis Reque သို့စာတစ်စောင်ထည့်သွင်းရန်နှင့်သက်တမ်းကုန်ဆုံးခြင်းနှင့်သက်တမ်းကုန်ဆုံးခြင်းနှင့်ပေးပို့စဉ်နှောင့်နှေးနေသည့်အချိန်ကိုပေးဆပ်ရမည်ကိုပြသသည်။

 // စာတိုသို့မက်ဆေ့ခ်ျများထည့်ပြီးနှောင့်နှေးအချိန်ကိုသတ်မှတ်ပါ (စက္ကန့်)
function adddelayedmessage ($ message, $ days)
{
    Global $ Redis;

    // မက်ဆေ့ခ်ျကို $ နှောင့်နှေး = အချိန် = အချိန် () + $ နှောင့်နှေးခြင်း၏ပေးပို့ခြင်း timestamp ကိုတွက်ချက်;

    // မက်ဆေ့ခ်ျကိုအမိန့်ပေးထားသည့်အစဉ်အဆက်သို့ထည့်သွင်းပါ, ရမှတ်သည် $ Redis-zadd ('နှောင့်နှေးခြင်း,
}

// သက်တမ်းကုန်ဆုံးခြင်းမက်ဆေ့ခ်ျကိုစစ်ဆေးပြီးပေးပို့ပါ။
{
    Global $ Redis;

    နေစဉ် (စစ်မှန်တဲ့) {
        // လက်ရှိအချိန်မတိုင်မီပေးပို့ရန်လိုအပ်သည့်သတင်းစကားကို $ Redis-zrangebyscore ('နှောင့်နှေးခြင်း, 0, အချိန်), 0, time zrqueue' => [0, 1]])

        IF (ရေတွက် ($ မက်ဆေ့ခ်ျ)> 0) {
            // ဤနေရာတွင်စာတိုပေးပို့ခြင်းများကိုပေးပို့ခြင်းကို Sending to Echo ကိုနှိပ်ပါ။ $ မက်ဆေ့ခ်ျ [0] ။ php_eol;

            // Sented Message $ Redis-> Zrem ('နှောင့်နှေးခြင်း,
        } အခြား
            // ပို့ရန်မက်ဆေ့ခ်ျများ,
        }
    }
}

// နမူနာနှောင့်နှေးမှုမက်ဆေ့ခ်ျကို adddelayedmessage ('Message 1', 300); // adddelayedmessage ('Message 2', 600), // 10 မိနစ်အကြာတွင် // ပေးပို့ // ပေးပို့ checkdelayedmessages ();

အထက်ပါကုဒ်တွင် adddelayedmessmessmessage function သည် Redis orded set သို့မက်ဆေ့ခ်ျကိုထည့်သွင်းထားသည်။ checkdelayedmessionedsedmesses သည်လက်ရှိအချိန်မတိုင်မီကမက်ဆေ့ခ်ျများကိုစဉ်ဆက်မပြတ်စစ်ဆေးသည်။

အကျဉ်းချုပ်

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

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