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

PHP ကိုမည်သို့အသုံးပြုရမည်ကို Redis Message Subscription နှင့် Latency လုပ်ငန်းများကိုထိရောက်စွာကိုင်တွယ်ရန်

M66 2025-06-13

Redis Message Subscription ကိုစဉ်ဆက်မပြတ်နားထောင်ရန်နှင့် PHP တွင်နှောင့်နှေးအလုပ်များကိုကိုင်တွယ်ရန်

မျက်မှောက်ခေတ် Web Development တွင်နှောင့်နှေးအလုပ်အပြောင်းအလဲသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ ထိရောက်သော In-Memory Database တစ်ခုအနေဖြင့် Redis သည်စွမ်းဆောင်ရည်ရှိသည့် latency task system များကိုအလွယ်တကူအကောင်အထည်ဖော်ရန်ခွင့်ပြုထားသောအားကောင်းသော subscription / ထုတ်လွှင့်ရေးယန္တရားကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည် MPP တွင် Redis ၏ Subscription ယန္တရားကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ ခြုံငုံသုံးသပ်ချက်

မစတင်မီကျွန်ုပ်တို့သည်အခြေခံသဘောတရားအချို့ကိုနားလည်ရန်လိုအပ်သည်။

  1. Redis - မှတ်ဉာဏ်အခြေခံသည့်စွမ်းဆောင်ရည်မြင့်မားသောအဓိကကျသောတန်ဖိုးဒေတာဘေ့စ်, cache,
  2. Subscription / Publishing ယန္တရား (Pub / Sub) - ဖောက်သည်များအားအချက်အလက်များကိုလမ်းကြောင်းများမှတဆင့်အချက်အလက်များဖလှယ်ရန်ခွင့်ပြုသည့် Redis ၏ messis ယန္တရားတစ်ခု။
  3. နှောင့်နှေးခြင်းအလုပ် - သတ်မှတ်ထားသောအချိန်တွင်အစပျိုးရန်လိုအပ်သည့်အလုပ်တစ်ခုကိုများသောအားဖြင့်ပြတ်တောင်းပြတ်တောင်းလုပ်ငန်းများစီစဉ်ရန်စီစဉ်ထားသည်။

2 ။ ပြင်ဆင်မှု

မက်ဆေ့ခ်ျကိုစာရင်းသွင်းခြင်းအတွက် Redis ကိုမစတင်မှီ PHP တွင် PHP တွင် Redis extension ကိုသေချာအောင်ပြုလုပ်ရန်လိုအပ်သည်။ အောက်ပါ command ကို သုံး. ၎င်းကို install လုပ်နိုင်သည်။

$ pecl redis ကို install လုပ်ပါ

အကောင်အထည်မဖေါ်ခြင်း

ထို့နောက်ကျွန်ုပ်တို့သည်အဆင့်ဆင့်ကိုအဆင့်ဆင့်အကောင်အထည်ဖော်ရန်နှင့်နှောင့်နှေးသောအလုပ်များကိုကိုင်တွယ်ရန်မည်သို့ဆက်လက်နားထောင်ရမည်နည်း။

1 ။ Redis ကိုဆက်သွယ်ပါ

ပထမ ဦး စွာ, သင် Redis ဆာဗာနှင့်ချိတ်ဆက်ရန်လိုအပ်သည်, ဤတွင်ဆက်သွယ်မှုကုဒ်ဖြစ်သည်။

<?php
$redis = new Redis();
$redis->ချိတ်ဆက်မှု (&#39;127.0.0.1.1&#39;, 6379,

2 ။ နှောင့်နှေးအလုပ်များကိုထုတ်ဝေသည်

ထို့နောက်သင်သည်နှောင့်နှေးသောအလုပ်ကို redis သို့ထုတ်ဝေရန်လိုအပ်သည်။ ဤနေရာတွင်လုပ်ငန်းတာဝန်ကိုတင်ရန်ကုဒ်ဖြစ်သည်။

<?php
// အလုပ်ဒေတာကိုသတ်မှတ်ပါ
$taskData = [
    'taskId' => 1,
    &#39;TaskName&#39; => &#39;Day Day Task Sign&#39;,
    // ... အခြားနယ်ပယ်များ];
<p>// အလုပ်၏ခလုတ်အချိန်ကိုတွက်ချက်ပါ (လက်ရှိအချိန်တွင်စက္ကန့် 60 လျှင်)<br>
$ triggertime = အချိန် () + 60;</p>
<p>// JSON format ဖြင့်အလုပ်ဒေတာကို Serialize လုပ်ပါ။ ၎င်းကိုသတ်မှတ်ထားသော Channel သို့ထုတ်ဝေပါ<br>
$ Redis-> Publish (&#39;နှောင့်နှေးခြင်း - အလုပ်များ&#39;, JSONS_CENDODE ($ taskdata));</p>
<p>// task ကိုရမှတ်နှင့် task data အဖြစ် task data ကိုတန်ဖိုးအဖြစ်သိမ်းဆည်းပါ<br>
$ Redis-> Zadd (&#39;Scheduled Tasks&#39;, $ triggertime, json_entode ($ taskdata));<br>

3 ။ Redis မက်ဆေ့ခ်ျများကိုနားထောင်ပြီးနှောင့်နှေးအလုပ်များကိုကိုင်တွယ်ပါ

Redis ၏စာရင်းသွင်းမှုယန္တရားသည်မက်ဆေ့ခ်ျများရောက်ရှိလာသည့်အခါနှောင့်နှေးသောအလုပ်များကိုစဉ်ဆက်မပြတ်နားထောင်ရန်နှင့်နှောင့်နှေးသောအလုပ်များကိုစဉ်ဆက်မပြတ်နားထောင်ရန်ခွင့်ပြုသည်။ ဒီမှာကုဒ်ဥပမာတစ်ခုပါ။

<?php
// callback function ကိုသတ်မှတ်ပါ,လက်ခံရရှိမက်ဆေ့ခ်ျကို process ဖို့အသုံးပြုခဲ့သည်
function handleMessage($channel, $message) {
    $taskData = json_decode($message, true); // အလုပ်ဒေတာကိုခွဲခြမ်းစိတ်ဖြာပါ
    // နှောင့်နှေးတာဝန်များကိုကိုင်တွယ်
    // ...
    echo "လက်ခံရရှိလမ်းကြောင်း {$channel} သတင်း:{$message}";
}
<p>// Redis subscription ကိုအရာဝတ်ထုဖန်တီးပါ<br>
$ စာရင်းပေးသွင်းထားသူ = New Redis ();<br>
$ Subscribe-> Srike (&#39;နှောင့်နှေးခြင်း - အလုပ်များ&#39;], &#39;houslemessage&#39;), // သတ်မှတ်ထားသော Channel အတွက်မက်ဆေ့ခ်ျကို subscribe</p>
<p>// စဉ်ဆက်မပြတ်မက်ဆေ့ခ်ျကိုစောင့်ကြည့်<br>
နေစဉ် ($ စာရင်းပေးသွင်းထားသူ> Pubsubloop ()) {<br>
// မည်သည့်စစ်ဆင်ရေးကိုမဆိုတက်ကြွစွာလုပ်ဆောင်ရန်မလိုအပ်ပါ။<br>
}<br>

4 ။ အကျဉ်းချုပ်

ဤသင်ခန်းစာမှတစ်ဆင့် PHP တွင် Redis ၏စာရင်းသွင်းခြင်းယန္တရားကိုမည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့နားလည်ပါသည်။ PHP applications များအတွက်အားကောင်းသောအလုပ်ပြုပြင်ခြင်းစွမ်းရည်များကိုပေးရန် Redis ၏အကျိုးရှိသည့်စာတိုပေးပို့ရေးယန္တရားကို အသုံးပြု. ယုံကြည်စိတ်ချရသောနှောင့်နှေးသောလုပ်ငန်းခွင်အစီအစဉ်များကိုတည်ဆောက်နိုင်သည်။ ဤဆောင်းပါး၏နိဒါန်းမှတစ်ဆင့်နှောင့်နှေးအလုပ်များကိုကိုင်တွယ်ရန် PHP နှင့် Redis ကိုသင်ပိုမိုအသုံးချနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။