PHP ကိုရေရှည်အလုပ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသောအခါအသုံးပြုသူများသည်ဘရောက်ဇာကိုပိတ်ထားသည့်သို့မဟုတ်တောင်းဆိုမှုကိုတက်ကြွစွာဖြုတ်ချသည့်အခြေအနေကိုကျွန်ုပ်တို့မကြာခဏကြုံတွေ့ရတတ်ပြီး PHP script ကိုဖျက်သိမ်းလိမ့်မည်။ ၎င်းသည်ရေရှည်သို့မဟုတ်နောက်ခံကိုစဉ်ဆက်မပြတ်လုပ်ဆောင်ရန်လိုအပ်သော scripts များအတွက်အလွန်ဆိုးဝါးသည်။ ထို့ကြောင့်အသုံးပြုသူအဆက်ပြတ်သည့်အခါ script ကိုဖျက်သိမ်းရန်မည်သို့ကာကွယ်နိုင်သနည်း။ အဖြေမှာ လျစ်လျူရှုခြင်း () function ကိုအသုံးပြုရန်ဖြစ်သည်။
လျစ်လျူရှုထားသည့် Idegal_User_abort () သည် PHP မှပေးသော function တစ်ခုဖြစ်ပြီး client သည် client client client client ကိုဆက်လက်လုပ်ဆောင်နေသည်။
ignore_user_abort(true);
စစ်မှန်တဲ့ parameter သည်လွန်သွားသောအခါ PHP script သည်လုပ်ဆောင်မှုပြီးဆုံးသည်အထိသို့မဟုတ်တက်ကြွစွာထွက်ပေါ်လာသည်အထိအသုံးပြုသူသည် browser ကိုပိတ်ထားလျှင်ပင် PHP script သည်ဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။
asynchronous အလုပ်များကိုကိုင်တွယ်
နောက်ခံ Qu>
အချိန် task simulation ကွပ်မျက်
ဖိုင်မျိုးဆက်သို့မဟုတ်ကြီးမားသောဒေတာတင်ပို့မှု
ပြည်နယ်ရှေ့နောက်ညီညွတ်မှုကိုထိန်းသိမ်းရန်လိုအပ်ကြောင်းနောက်ခံစစ်ဆင်ရေး
လက်တွေ့ကျပုံဥပမာတစ်ခုပေးရန်သင်သည် system backup function ကိုရေးဆွဲနေပါကအသုံးပြုသူသည် "Start Backup" ကိုနှိပ်လိုက်ပါက script သည်ဆယ်မိနစ်ကျော်ကြာရန်လိုအပ်သည်။ အသုံးပြုသူသည် browser ကိုပိတ်ထားပါက script ကို default ဖြင့်ဖျက်သိမ်းပြီးနောက်ခံအလုပ်ပျက်ကွက်လိမ့်မည်။ away_user_abort (True) မှတဆင့်) အသုံးပြုသူသည်စာမျက်နှာမှထွက်ခွာလျှင်ပင် backup ကိုပြီးစီးသည်အထိ script ကို script ကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။
ဤတွင်ပုံမှန်ရှည်လျားသောအလုပ်ပြုပြင်ခြင်းကုဒ်ဥပမာတစ်ခုဖြစ်သည်။
<?php
ignore_user_abort(true); // အသုံးပြုသူဆက်သွယ်မှုကိုချိုးဖောက်ရင်တောင်ဆက်လုပ်ပါ
set_time_limit(0); // Script Execution Time ကန့်သတ်ချက်ကိုပယ်ဖျက်ပါ
file_put_contents('log.txt', "မစ်ရှင်စတင်ချိန်:" . date('Y-m-d H:i:s') . "\n", FILE_APPEND);
// ရေရှည်အလုပ်တစ်ခုကိုဖန်တီးပါ
for ($i = 1; $i <= 10; $i++) {
file_put_contents('log.txt', "1 ။ {$i} အဆင့် -by-step ကွပ်မျက်...\n", FILE_APPEND);
sleep(5); // ခြင်း simulation တစ်ခုချင်းစီခြေလှမ်းများအတွက်အချိန် - စားသုံးခြင်း
}
file_put_contents('log.txt', "Task ပြီးစီးအချိန်:" . date('Y-m-d H:i:s') . "\n", FILE_APPEND);
?>
ဥပမာအားဖြင့်ဤ script ကို curl (သို့) Ajax တောင်းဆိုမှုများမှတစ်ဆင့်ခေါ်ဆိုနိုင်သည်။
fetch("https://gitbox.net/run-task.php");
အသုံးပြုသူသည်တောင်းဆိုမှုကိုပေးပို့ပြီးနောက်အသုံးပြုသူသည် browser ကိုပိတ်ထားလျှင်ပင် script ကိုအပြည့်အဝအကောင်အထည်ဖော်လိမ့်မည်။
အသုံးပြုသူအဆက်ပြတ်သည့်နောက်တွင်အသုံးပြုသူအဆက်ပြတ်သည့်နောက်တွင်သင်သည်ယုတ္တိရှိသောအပြောင်းအလဲများကိုပြုလုပ်လိုပါကအချို့သောအပြုအမူများကိုရေးသားခြင်းသို့မဟုတ်အချို့သောအပြုအမူများကို အသုံးပြု. ဆက်သွယ်မှု () function ကိုသုံးနိုင်သည်။
if (connection_aborted()) {
file_put_contents('log.txt', "အသုံးပြုသူဆက်သွယ်မှုပြတ်တောက်သွားသည်\n", FILE_APPEND);
}
Idegal_User_abort (True) ဖြင့်အသုံးပြုသည်။
ide_user_abort ကိုအသုံးပြုခြင်း () ခြွင်းချက်အားလုံးကိုလျစ်လျူရှုနိုင်ဟုမဆိုလိုပါ,
Set_Te_Limit (0) ကို အများဆုံးကွပ်မျက်ချိန်ကန့်သတ်ချက်ကိုပယ်ဖျက်ရန်တစ်ချိန်တည်းတွင်အသုံးပြုရန်အကြံပြုပါသည်။
အကယ်. script သည်အချက်အလက်များကို 0 န်ဆောင်မှုခံယူသူအားအချက်အလက်များကိုထုတ်ဖော်ပြောဆိုပါက ob_start () ထုတ်လုပ်မှုဆိုင်ရာအပြုအမူများကြောင့်ဖြစ်ပေါ်လာသောဆက်သွယ်မှုပြ problems နာများကိုရှောင်ရှားရန် ob_start () ကို အသုံးပြုရန်ကြိုးစားပါ။
PHP တွင်အလုပ်များကိုတာရှည်သောအလုပ်များကိုကိုင်တွယ်သည့်အခါ လျစ်လျူရှုခြင်းကို အသုံးပြုခြင်းသည်စာနယ်ဇင်းသမားကအသုံးပြုသူမှဇာတ်ညွှန်းကိုအနှောင့်အယှက်မပေးနိုင်စေရန်ထိရောက်သောနည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းသည်လုပ်ငန်းများကိုဆာဗာဘက်တွင်အပြည့်အ 0 ကွပ်မျက်။ စနစ်၏တည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုကိုတိုးတက်စေနိုင်သည်။ ၎င်းသည်နောက်ခံဇာတ်ညွှန်းအတွက် backup လုပ်ခြင်း, တွန်းတင်ခြင်း, ပို့ကုန်စသည်တို့ပါ 0 င်သည့်နောက်ခံဇာတ်ညွှန်းအတွက်အလွန်လက်တွေ့ကျသည့်လှည့်ကွက်တစ်ခုဖြစ်သည်။