Web Application Development တွင်အလုပ်များနှင့်အစပျိုးသည့်တိုင်တန်းများကိုအချိန်ကိုက်ခြင်းများသည်တူညီသောလိုအပ်ချက်များဖြစ်သည်။ စွမ်းဆောင်ရည်မြင့်မားသော PHP framework အနေဖြင့် Phalcon သည်ဤလုပ်ဆောင်မှုများကို middleward မှတစ်ဆင့်ပြောင်းလွယ်ပြင်လွယ်သောပေါင်းစပ်မှုကိုထောက်ပံ့သည်။
Phalcon Middleware ဆိုသည်မှာတောင်းဆိုမှုမတိုင်မီနှင့်နောက်တွင်သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေးများကိုလုပ်ဆောင်နိုင်သည့် HTTP တောင်းဆိုမှုအပြောင်းအလဲအတွက်ထည့်သွင်းထားသော code module တစ်ခုဖြစ်သည်။ အလည်အပတ်ခရီးသည် application များအပေါ်တိုးမြှင့်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေရန်အချိန်ကိုက်အလုပ်များနှင့်အချိန်ဇယားများကိုအလွယ်တကူထည့်သွင်းနိုင်သည်။
Phalcon တွင်အချိန်ကောင်းအလုပ်များကိုမှတ်ပုံတင်ခြင်းသည်အလွန်အလိုလိုသိသည်။ အချိန်ကာလကိုသတ်မှတ်ပြီး Periodic Execute အောင်မြင်ရန်တောင်းဆိုမှုကိုညွှန်ကြားရန် routing ကိုအသုံးပြုပါ။
နမူနာကုဒ် (PHP):
use PhalconMvcRouter;
use PhalconMvcRouterRoute;
// အချိန်ကိုက်အလုပ်တစ်ခုဖန်တီးပါ
function myTask() {
// Execution Task Logic
echo "အချိန် task ကိုကွပ်မျက် time";
}
// အချိန်သတ်မှတ်ထားသည့်အလုပ်များကိုထည့်ရန်အချိန်တန်
$router = new Router();
$router->add(
'/my/time/task',
[
'controller' => 'index',
'middleware' => function() {
// မိနစ်တိုင်းကွပ်မျက်ခံရသောအချိန်ကိုက်အလုပ်တစ်ခုထည့်ပါ
swoole_timer_tick(60000, 'myTask');
}
]
);
// လျှောက်လွှာအတွက်လမ်းကြောင်းမှတ်ပုံတင်ပါ
$app->getDI()->setShared('router', $router);
Code တွင် SWOOLE_Timer_Tick function ကိုတစ်မိနစ်လျှင်တစ်ကြိမ်အကောင်အထည်ဖော်ရန်အချိန်သတ်မှတ်ထားသည့်အလုပ်ကိုအကောင်အထည်ဖော်ရန်အသုံးပြုသည်။ တောင်းဆိုမှုများကိုလမ်းကြောင်းနှင့်ဖြန့်ဖြူးခြင်းအားဖြင့်အချိန်ကိုက်ခြင်းလုပ်ငန်းများကိုအချိန်တိုအတွင်းထိရောက်စွာပေါင်းစည်းထားသည်။
Periodic Tasks များအပြင် Phalcon Middleware သည်တစ်ကြိမ်တည်းသောအချိန်ဇယားကိုလည်းထောက်ခံသည်, ဆိုလိုသည်မှာသတ်မှတ်ထားသောအချိန်အပြီးတွင်ယုတ္တိဗေဒအစိတ်အပိုင်းတစ်ခုဖြစ်သည့်အချက်အချာကျသောအပိုင်းကိုလုပ်ဆောင်သည်။
နမူနာကုဒ် (PHP):
use PhalconMvcRouter;
use PhalconMvcRouterRoute;
// timer ထည့်ရန် middleware ကိုဖန်တီးပါ
$router = new Router();
$router->add(
'/my/time/timer',
[
'controller' => 'index',
'middleware' => function() {
// တစ်ခုထည့်ပါ5timer စက္ကန့်အတွင်းကွပ်မျက်ခံရ
swoole_timer_after(5000, function() {
// Timer Logic
echo "Timer Execution";
});
}
]
);
// လျှောက်လွှာအတွက်လမ်းကြောင်းမှတ်ပုံတင်ပါ
$app->getDI()->setShared('router', $router);
ဤတွင် SWOOLE_TIMER_AFTER သည် အသေသတ်ခြင်းကိုနှောင့်နှေးစေသည့် timer ကိုအကောင်အထည်ဖော်သည့် timer ကိုအကောင်အထည်ဖော်သည်။
Phalcon Middleware နှင့်အတူ developer များသည် php applications များသို့ timing လုပ်ငန်းများနှင့် timer လုပ်ဆောင်ချက်များကိုပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်စွာထည့်သွင်းနိုင်သည်။ SWOOLE ၏ Timer ယန္တရားနှင့်ပေါင်းစပ်ထားသောပုံမှန်ကွပ်မျက်မှုသို့မဟုတ်နှောင့်နှေးခြင်းသို့မဟုတ်နှောင့်နှေးခြင်းများပြုလုပ်ရန်လိုအပ်သည်ဖြစ်စေ,