လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> စွမ်းဆောင်ရည်ကိုထိရောက်စွာပြတ်တောက်သောအလုပ်များဖြန့်ဖြူးမှုကိုရရှိရန် Gearman ကို အသုံးပြု. PHP ၏အသေးစိတ်ရှင်းပြချက်

စွမ်းဆောင်ရည်ကိုထိရောက်စွာပြတ်တောက်သောအလုပ်များဖြန့်ဖြူးမှုကိုရရှိရန် Gearman ကို အသုံးပြု. PHP ၏အသေးစိတ်ရှင်းပြချက်

gitbox 2025-08-05

နိဒါန်း

ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းပြတ်ပြတ်သားသားလုပ်ဆောင်မှုသည်အချိန်ကုန်စားသုံးသည့်အလုပ်များကိုရင်ဆိုင်ရသောအခါအစီအစဉ်စွမ်းဆောင်ရည်နှင့်တုန့်ပြန်မှုမြန်နှုန်းကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။ လုပ်ငန်းများဖြန့်ဖြူးခြင်းနှင့်ပြုပြင်ခြင်းများကိုနားလည်သဘောပေါက်ရန် PHP သည် open source fail Manager System Gearman ကိုသုံးနိုင်သည်။ ဤဆောင်းပါးသည် Gearman installation, configuration နှင့်လျှောက်လွှာများကိုအလုပ်ဖြန့်ဖြူးခြင်းနည်းလမ်းများအားမြန်ဆန်စွာကျွမ်းကျင်စေရန်ကူညီပေးပါမည်။

Gearman installation နှင့် configuration ကို

Gearman extension ကို install လုပ်ပါ

ပထမ ဦး စွာ Gearman extension ကို install လုပ်ရန်လိုအပ်သည်။ အောက်ပါ command ကို execute လုပ်ရန် pecl tool ကိုသုံးနိုင်သည်။

 <span class="fun">PECL GEARMANGE</span>

တပ်ဆင်ပြီးသည်နှင့်ပြီးဆုံးပါက Extension ကြေငြာချက်ကို php.ini ဖိုင်တွင်ထည့်ပါ။

 <span class="fun">extension = gearman.so</span>

Gearman ဆာဗာကိုစတင်ပါ

Gearman သည်ဆာဗာဘက်ကိုလက်ခံရန်နှင့်အချိန်ဇယားဆွဲရန်လိုအပ်သည်။ Gearman Server ကိုအောက်ပါ command ဖြင့်စတင်ပါ။

 <span class="fun">Gearmand --Daemon</span>

ပုံမှန်အားဖြင့် Gearman Server သည် localhost ၏ port 4730 ကိုနားထောင်သည်။

Task Distribution နှင့်အပြောင်းအလဲနဲ့

အလုပ်ဖြန့်ဖြူးသူ (client) ကိုဖန်တီးပါ။

PHP တွင် Gearmanclient Class မှတစ်ဆင့်အလုပ်ဖြန့်ချိသူတစ် ဦး ကိုဖန်တီးပါ။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 $client = new GearmanClient();
$client->addServer(); // ပုံမှန်ဆက်သွယ်မှုlocalhost:4730
// အလုပ်တစ်ခုထည့်ပါ
$client->addTask('my_task', 'my_data');
// အလုပ်တစ်ခုကိုတင်ပါ
$client->runTasks();

code တွင်ဂီယာမှအရာဝတ်ထုကိုဖန်တီးပြီး Gearman Server သည်ပုံမှန်အားဖြင့်ချိတ်ဆက်ထားသည်။ Addtask Method မှတစ်ဆင့်အလုပ်တစ်ခုကို "My_Task" ဟုခေါ်သည်။ Data သည် my_data ဟုခေါ်သည်။

အလုပ်သမားတစ် ဦး ဖန်တီးပါ

Task Handlers သည် Gearmanworker လူတန်းစားကို အသုံးပြု. အောက်ပါအတိုင်းသင်္ကေတများများကိုအောက်ပါအတိုင်းဖန်တီးရန်ဖြစ်သည်။

 $worker = new GearmanWorker();
$worker->addServer(); // ပုံမှန်ဆက်သွယ်မှုlocalhost:4730
// Task Handling Functions ကိုမှတ်ပုံတင်ပါ
$worker->addFunction('my_task', 'my_task_handler');
// အလုပ်စောင့်ကြည့်လေ့လာခြင်းစတင်ပါ
while ($worker->work());

// အလုပ်ကိုင်တွယ်ဖြေရှင်းခြင်း
function my_task_handler($job) {
    $data = $job->workload();
    // အပြောင်းအလဲနဲ့ task ကိုယုတ္တိဗေဒ
    return $result;
}

အထက်ပါကုဒ်တွင် Gearmanwareer Object သည် "my_task_handler" ကိုဖွင့်ပြီး task processing function ကို Regupers လုပ်ပြီး client မှပေးပို့သော "my_task" task ကိုနားထောင်ရန်နှင့်လုပ်ငန်းဆောင်သည်။ လုပ်ငန်းဒေတာကို $ အလုပ်ခွင် - 0 န်ဆောင်မှုပေးခြင်း () လုပ်ငန်းများမှရရှိသောကြောင့်အပြောင်းအလဲပြီးစီးပြီးနောက်ရလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။

အကျဉ်းချုပ်

Gearman extension installation နှင့် processor countion နှင့်နမူနာကုဒ်များအပါအ 0 င် PPP asynchronous task ဖြန့်ဝေမှုကိုအကောင်အထည်ဖော်ရန်ဤဆောင်းပါးသည် Gearman ကို အသုံးပြု. မိတ်ဆက်ပေးသည်။ Gearman သည်အချိန်ကုန်စေသောအလုပ်များကိုနှင့်အညီဆက်သွယ်ရေးလုပ်ငန်းများ,

Gearman Task Queue ၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည် PHP applications များကိုပိုမိုထိရောက်စွာဖြည့်ဆည်းပေးနိုင်သည်။

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