လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် Redis Message Subsycription နှင့် Email Notification ကိုအကောင်အထည်ဖော်ရန်အတွက်အပြည့်အစုံသင်ခန်းစာ

PHP တွင် Redis Message Subsycription နှင့် Email Notification ကိုအကောင်အထည်ဖော်ရန်အတွက်အပြည့်အစုံသင်ခန်းစာ

M66 2025-10-28

PHP တွင် Redis မက်ဆေ့ခ်ျများစာရင်းသွင်းခြင်းနှင့်အီးမေးလ်အကြောင်းကြားစာကိုအကောင်အထည်ဖော်ရန်အတွက်အကြံဥာဏ်များ

ခေတ်သစ် Real-time applications များတွင် Message Notification Functionality သည်မရှိမဖြစ်လိုအပ်သောအစိတ်အပိုင်းတစ်ခုဖြစ်လာသည်။ REDIS မှပေးသောပုံနှိပ်နှင့်စာရင်းသွင်းခြင်းယန္တရား (PUB / sub) သည်ဆာဗာနှင့် 0 န်ဆောင်မှုခံယူသူအားအမှန်တကယ်အချိန်မီသတင်းများနှင့်အပြန်အလှန်ဆက်သွယ်နိုင်သည်။ PHP တွင် SWOOLE Coroutine Extension ကိုပေါင်းစပ်ခြင်းအားဖြင့်စွမ်းဆောင်ရည်မြင့်မားခြင်း, စဉ်ဆက်မပြတ်စောင့်ကြည့်လေ့လာခြင်းမက်ဆေ့ခ်ျကိုပြုပြင်ခြင်းနှင့်အီးမေးလ်အသိပေးခြင်းစနစ်ကိုအကောင်အထည်ဖော်နိုင်သည်။

လိုအပ်သောမှီခိုမှုများကို install လုပ်ပါ

ကုဒ်ရေးသားခြင်းမပြုမီ, သဘာ 0 နှင့် Redis extension များကိုပတ်ဝန်းကျင်တွင်တပ်ဆင်ထားရန်သေချာစေရန်လိုအပ်သည်။ Linux Systems များကိုအောက်ပါ command ဖြင့်တပ်ဆင်နိုင်သည်။

 pecl install swoole
pecl install redis

အကယ်. သင်သည် Windows စနစ်ကိုအသုံးပြုနေပါကသက်ဆိုင်ရာ dll extension file ကိုကိုယ်တိုင်အသုံးပြုရန်နှင့် install လုပ်ရန် PECL တရားဝင်ဝက်ဘ်ဆိုက်သို့သွားနိုင်သည်။

PHP နားထောင်ခြင်း script ကိုဖန်တီးပါ

Redis Message Subscriptions subscriptions ကိုစဉ်ဆက်မပြတ်စောင့်ကြည့်လေ့လာရန်နှင့်အီးမေးလ်ပို့ခြင်းအားစဉ်ဆက်မပြတ်စောင့်ကြည့်ရန် Notify.php အမည်ရှိ script file တစ်ခုဖန်တီးပါ။ Code pegager ်ဌာန်းချက်မှာအောက်ပါအတိုင်းဖြစ်သည် -

 <?php
require 'vendor/autoload.php';
use Swoole\Coroutine;
use Swoole\Coroutine\Redis;

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$redis->subscribe(['channel'], function ($redis, $channel, $message) {
    // မက်ဆေ့ခ်ျကိုလက်ခံရရှိပြီးနောက်အီးမေးလ်အကြောင်းကြားစာပေးပို့ပါ
    sendEmail($message);
});

Coroutine::create(function () use ($redis) {
    $redis->subscribe(['channel'], function ($redis, $channel, $message) {
        // မက်ဆေ့ခ်ျကိုလက်ခံရရှိပြီးနောက်အီးမေးလ်အကြောင်းကြားစာပေးပို့ပါ
        sendEmail($message);
    });
});

function sendEmail($message) {
    // စာကြည့်တိုက်ပို့ခြင်းအီးမေးလ်ကို အသုံးပြု. အီးမေးလ်များပို့ပါ
    // code...
}

Coroutine::create(function () use ($redis) {
    while (true) {
        $redis->ping();
        Coroutine::sleep(5);
    }
});

အထက်ပါကုဒ်တွင်ကျွန်ုပ်တို့သည် Redis client ကိုပထမဆုံးအကြိမ်ပို့ပြီး Redis server နှင့်ဆက်သွယ်သည်။ Subscribe Method မှတဆင့်သတ်မှတ်ထားသော channel ကိုစာရင်းသွင်းပါ။ မက်ဆေ့ခ်ျအသစ်များကိုစောင့်ကြည့်သောအခါ callback function ကိုအစပျိုးပေးလိမ့်မည်။ Senemandail () function ကိုအီးမေးလ်သတိပေးချက်များပေးပို့ရန်ခေါ်လိမ့်မည်။ ဤလုပ်ဆောင်ချက်သည်စာကြည့်တိုက် (Phpmailer, Swipmailier စသည်တို့) (ဥပမာ Phpmailer, SwiftPierma ကဲ့သို့သော) စာကြည့်တိုက် (ဥပမာ phpmailer, swiftmailer စသည်တို့) ကိုပေါင်းစပ်နိုင်သည်။

ထို့အပြင် SWOOLE Coroutine ကိုအသုံးပြုခြင်းသည်အစီအစဉ်ကိုနောက်ခံတွင်တက်ကြွစွာဆက်လက်တည်ရှိပြီးဆက်သွယ်မှုကိုအဆက်ပြတ်ခြင်းမှကာကွယ်ရန်ပုံမှန် Redis server နှင့်ဆက်သွယ်ရန်ခွင့်ပြုသည်။

နားထောင်ခြင်း script ကို run ပါ

အထက်ပါကုဒ်ကိုသိမ်းဆည်းပြီးပါကစောင့်ကြည့်လေ့လာရန်အောက်ပါ command line တွင်အောက်ပါ command ကို Execute လုပ်ပါ။

 php notify.php

ဤ script သည်အပြေးနေမည်ဖြစ်ပြီးသတင်းစကားအတွက် Redis Channel ကိုဆက်လက်စောင့်ကြည့်ပြီးမက်ဆေ့ခ်ျအသစ်များလက်ခံရရှိသည့်အခါအီးမေးလ်သတိပေးချက်များကိုအလိုအလျောက်ပေးပို့ပါ။

အကျဉ်းချုပ်

PHP ၏ SWOOLE Coroutine ကို Redis Publish နှင့် Subscribe andism နှင့်ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အချိန်နှင့်တပြေးညီသတင်းစကားစောင့်ကြည့်ရေးနှင့်အီးမေးလ်အသိပေးခြင်းစနစ်များကိုထိရောက်စွာအကောင်အထည်ဖော်နိုင်သည်။ ဤဗိသုကာသည်အထူးအချိန် chat systems, system war ည့်သည်ဆိုင်ရာအသိပေးချက်များနှင့်ဒေတာပြောင်းလဲမှုတွန်းအားများကဲ့သို့သော application အခြေအနေများအတွက်အထူးသဖြင့်သင့်လျော်သည်။ ၎င်းသည်ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းများ၏အပြောင်းအလဲအတွက်ယုတ္တိဗေဒကိုရိုးရှင်းရုံသာမကတစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုနှင့်တုန့်ပြန်မှုမြန်နှုန်းကိုသိသိသာသာတိုးတက်စေသည်။