ခေတ်သစ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းလုပ်ငန်းတာဝန်များနှင့်အကြီးစားအချက်အလက်များကိုကိုင်တွယ်ရာတွင်လုပ်ငန်းခွင်ဆိုင်ရာစီအီးအိုများ၏စွမ်းဆောင်ရည်ကိုမည်သို့တိုးတက်အောင်လုပ်ရမည်နည်း။ အဓိပ္ပာယ်ကောက်ယူသောဘာသာစကားတစ်ခုအနေဖြင့် PHP သည်တစ်ပြိုင်နက်တည်းကတစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းထုတ်လုပ်မှုကိုမစွမ်းဆောင်နိုင်သော်လည်းတိုးချဲ့မှုနှင့်နည်းပညာဆိုင်ရာနည်းလမ်းများအတွက်အကူအညီဖြင့်ဤပြ problem နာကိုအတိုင်းအတာတစ်ခုအထိဖြေရှင်းနိုင်နေဆဲဖြစ်သည်။ ဤဆောင်းပါးသည် PHP ၏ Task Queue Performance ကိုတိုးတက်စေရန် Thread_Safe နှင့် Gearman Extensions ကိုမည်သို့ပေါင်းစပ်ရမည်ကိုဆွေးနွေးပါမည်။
Thread_Safe သည် PHP တွင် PHP တွင်စုစည်းရန်ရွေးချယ်မှုတစ်ခုဖြစ်သည်။ Thread_Safe option ကိုဖွင့်ထားသည့်အခါ PHP သည်ချည်မျှင်များအကြားအချက်အလက်များအကြားပ conflict ိပက်ခဖြစ်ရန်အတွက်ချည်ပေါင်းစုံ applation, Multi-thread နှင့် multi-process ပတ် 0 န်းကျင်အတွက် Thread_Saade သည် ချည်နှောင်ခြင်းများအကြားအချက်အလက်ပြိုင်ဆိုင်မှုကိုရှောင်ရှားရန်နှင့်တစ်ပြိုင်နက်တည်းလုပ်ငန်းများကိုတည်ငြိမ်မှုရှိစေရန်သေချာစေရန်ကူညီနိုင်သည်။
Gearman သည်ဖြန့်ဝေထားသော ture system ဖြစ်ပြီးအလုပ်လုပ်ငန်းစဉ်များအားအလုပ်လုပ်ကိုင်သောလုပ်ငန်းစဉ်များအားဖြန့်ဝေရန်နှင့်လုပ်ငန်းပြီးဆုံးပြီးနောက်ရလဒ်များကိုစုဆောင်းရန်ကူညီပေးသည်။ Gearman မှ PHP အစီအစဉ်များမှတစ်ဆင့် PHP အစီအစဉ်များသည်အလုပ်များစွာလုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်နိုင်ပြီး system ၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်နိုင်စွမ်းကိုတိုးတက်စေနိုင်သည်။ Gearman သည် client-server ပုံစံကိုအသုံးပြုသည်, 0 န်ဆောင်မှုခံယူသူသည်လုပ်ငန်းတာဝန်ကို task တန်းစီသို့တင်ပြသည်။ လုပ်ငန်းများကိုဆာဗာများနှင့်စက်များဖြင့်ဖြန့်ဝေခြင်း,
PHP ကိုပေါင်းသင်းနေသောပတ် 0 န်းကျင်တွင် PHP ကိုမှန်ကန်စွာဖွင့်ရန်ကျွန်ုပ်တို့သည် thread_safe ကို install လုပ်ရန် compility optional -zts ကို ရွေးချယ်ရန်လိုအပ်သည်။ ဖွင့်ပါက PHP သည်ချည်မျှင်လုံခြုံမှုကိုအထောက်အကူပြုလိမ့်မည်။
အဆိုပါ configuration separts များအောက်ပါအတိုင်းဖြစ်သည် -
<span><span>./configure --enable-maintainer-zts
make
make install
</span></span>
အထက်ပါအဆင့်များမှတစ်ဆင့် PHP ၏ Thread_safe feature feature ကိုဖွင့်ထားပြီးတစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှု၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်ရန်သေချာသည်။
Gearman Extension သည် PHP နှင့် Gearman Task Queue System အကြား interface ဖြစ်သည်။ အလုပ်များကိုအကောင်အထည်ဖော်ရန်အတွက် PHP တွင်ဤ extension ကို install လုပ်ရန်လိုအပ်သည်။
Gearman extension ကို install လုပ်ရန်အဆင့်များ -
<span><span>pecl install gearman
</span></span>
တပ်ဆင်မှုပြီးပြည့်စုံပြီးပါက PHP configuration file php.ini ကိုပြုပြင်ပါ။ Gearman extension ကို enable လုပ်ပါ။
<span><span><span class="hljs-attr">extension</span></span><span>=gearman.so
</span></span>
ထို့နောက် PHP 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။
Gearman extension ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်အလုပ်များကိုလုပ်ဆောင်ရန်အတွက်အလုပ်တန်းစီရန်အလုပ်များကိုအကောင်အထည်ဖော်နိုင်သည့်အလုပ်များကိုတင်ပြနိုင်သည်။ ဤတွင်ရိုးရှင်းသောအလုပ်တင်သွင်းမှုဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$client</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">GearmanClient</span></span><span>();
</span><span><span class="hljs-variable">$client</span></span><span>-></span><span><span class="hljs-title function_ invoke__">addServer</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-number">4730</span></span><span>); </span><span><span class="hljs-comment">// Gearman ဆာဗာလိပ်စာ</span></span><span>
</span><span><span class="hljs-comment">// အလုပ်များကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$task</span></span><span> = </span><span><span class="hljs-variable">$client</span></span><span>-></span><span><span class="hljs-title function_ invoke__">doBackground</span></span><span>(</span><span><span class="hljs-string">'reverse'</span></span><span>, </span><span><span class="hljs-string">'Hello World!'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$task</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လုပ်ငန်းတာဝန်ကိုတင်သွင်းခဲ့သည်,အပြောင်းအလဲနဲ့စောင့်ဆိုင်း...\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အလုပ်တင်သွင်းမှုပျက်ကွက်\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ဤဥပမာတွင်ဖောက်သည်သည် reverseman server သို့ ပြောင်းပြန် ဟုခေါ်သောအလုပ်ကိုတင်ပြသောအလုပ်ကိုတင်ပြသည် ။ ။ အလုပ်ကိုပြတ်ပြတ်သားသားပြုလုပ်လိမ့်မည်။
Thread_Safe Enabled နှင့်အတူ PHP သည် Multi-Threaded ပတ်ဝန်းကျင်တွင်တာ 0 န် 0 တ္တရားများကိုပိုမိုကောင်းမွန်အောင်ကိုင်တွယ်နိုင်သည်။ Gearman extension ကိုအသုံးပြုသောအခါ PHP 0 န်ထမ်းလုပ်ငန်းစဉ်များသည်ချည်မျိုးစုံနှင့်အပြိုင်ပြေးလွှားနိုင်ပြီးအလုပ်ပြုပြင်ခြင်း၏ထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။
ဥပမာအားဖြင့်, အလုပ်ပမာဏသည်အလွန်ကြီးမားသောအခါ Gearman သည်မတူညီသောအလုပ်လုပ်ငန်းစဉ်များအားအလုပ်မျိုးစုံကိုဖြန့်ဝေမည်ဖြစ်ပြီးတစ်ချိန်တည်းတွင် Thread-Safe Mineisms မှတစ်ဆင့်ဆက်နွယ်မှု၏ယုံကြည်စိတ်ချရမှုကိုသေချာစေလိမ့်မည်။ Multithreaded Mode တွင် Gearman သည် PHP အလုပ်သမားများအားပိုမိုမြင့်မားသော php လုပ်သားဖြစ်စဉ်များကို အသုံးပြု. CPU အသုံးပြုမှုကိုအများဆုံးပြုလုပ်နိုင်သည်။
Gearman Server ကိုကျိုးကြောင်းဆီလျော်စွာ configure လုပ်ရန်အလွန်အရေးကြီးသည်။ Gearman Server parameters များကိုချိန်ညှိခြင်းအားဖြင့် System Property ကိုချိန်ညှိခြင်းဖြင့်စနစ်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။ ထို့အပြင် Gearman server ဖြစ်စဉ်များကို Load Balancing အတွက်ဖြန့်ဝေထားသောဗိသုကာလက်ရာတွင်ထည့်သွင်းထားနိုင်သည်။
အလုပ်သမားဖြစ်စဉ်များ၏နံပါတ်နှင့်စွမ်းဆောင်ရည်သည်အလုပ်အပြောင်းအလဲမြန်နှုန်းကိုတိုက်ရိုက်အကျိုးသက်ရောက်သည်။ ကျိုးကြောင်းဆီလျော်သောလုပ်ငန်းစဉ်အရေအတွက် configuration နှင့် code optimization မှတဆင့်စွမ်းဆောင်ရည်ကိုထိရောက်စွာတိုးတက်လာနိုင်သည်။ တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းလုပ်သားလုပ်ငန်းစဉ်အရေအတွက်တိုးပွားလာခြင်းစနစ်တကျနှင့်တုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေရန်ကူညီနိုင်သည်။
PHP ကိုချည်မျှင်တစ်ခုဖြင့် Enterman extension ကို အသုံးပြု. System ၏စွမ်းဆောင်ရည်ကိုပိတ်ဆို့ခြင်းကိုဖြစ်ပေါ်စေမည့် Database Queries သို့မဟုတ်စာအရေးအသားပြုခြင်းကဲ့သို့သောလုပ်ငန်းဆောင်ရွက်မှုလုပ်ငန်းများ၌ပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်ကြိုးစားပါ။ ဤလုပ်ငန်းများကို asynchronous Execution သို့ပြောင်းခြင်းသို့မဟုတ်အပြောင်းအလဲနဲ့အတွက်ပြင်ပ 0 န်ဆောင်မှုများကိုအသုံးပြုခြင်းကိုပြောင်းလဲရန်စဉ်းစားပါ။
Thread_safe နှင့် Gearman Extensions များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် PHP Task Queue များ၏စွမ်းဆောင်ရည်ကိုများစွာတိုးတက်ကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။ Thread_SPE သည် PHP သည် PHP ကိုပတ် 0 န်းကျင်တွင်လုံခြုံစွာနှင့်တည်ငြိမ်စွာလည်ပတ်နိုင်ပြီး Gearman Extension သည်စွမ်းဆောင်ရည်မြင့်မားစွာဖြန့်ဝေထားသော Task Queue System ကိုထောက်ပံ့ပေးသည်။ ကျိုးကြောင်းဆီလျော်သော configuration နှင့် optimization မှတစ်ဆင့်စနစ်၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်နိုင်စွမ်းနှင့်လုပ်ငန်းတာဝန်ထုတ်ခံရမှုကိုသိသိသာသာတိုးတက်အောင်လုပ်နိုင်သည်။ လက်တွေ့ကျသော application များအရကျိုးကြောင်းဆီလျော်သောဗိသုကာဒီဇိုင်းနှင့်စွမ်းဆောင်ရည်ညှိခြင်းသည် PHP ၏လုပ်ဆောင်မှုကိုအလုပ်တန်းစီတွင်ပိုမိုတိုးတက်စေလိမ့်မည်။