PHP တွင် stream_set_set_trimeout လုပ်ထားသည့်လုပ်ဆောင်မှုသည် The Network Contence, File Operations နှင့်အခြားအခြေအနေများတွင်မကြာခဏအသုံးပြုလေ့ရှိသည်။ အထူးသဖြင့်ရှည်လျားသောချိတ်ဆက်သော 0 န်ဆောင်မှုများ၌၎င်းသည်အချိန်ကုန်ကိုကျိုးကြောင်းဆီလျော်စွာထားရန်အလွန်အရေးကြီးသည်။ ရှည်လျားသောဆက်သွယ်မှု 0 န်ဆောင်မှုများသည်ဆက်သွယ်မှုကိုအချိန်ကြာမြင့်စွာဖွင့်ထားလေ့ရှိပြီးတိုက်ရိုက်ဆက်သွယ်မှု, အွန်လိုင်းဂိမ်းများ,
ရှည်လျားသောဆက်သွယ်မှုများ၏အကြီးမားဆုံးအင်္ဂါရပ်မှာဆက်သွယ်မှုတိုတောင်းသောဆက်သွယ်မှုနှင့်မတူဘဲဆက်သွယ်မှုသည်အဆက်အသွယ်ပြတ်တောက်ခြင်းမဟုတ်ဘဲအဆက်မပြတ်ဆက်သွယ်မှုများနှင့်မတူဘဲအဆက်မပြတ်ပြတ်တောက်ခြင်းမဟုတ်ပါ။ ရှည်လျားသောဆက်သွယ်မှုများသည်အချိန်ကြာမြင့်စွာဆက်လက်တက်ကြွစွာဆက်လက်ရှိနေရန်လိုအပ်သည်, ထို့ကြောင့်ဆက်သွယ်မှု၏အချိန်ကုန်ကိုမည်သို့စီမံရမည်ကိုအဓိကပြ issue နာဖြစ်သည်။ Steam_set_simeout_Timeout (ဥပမာ, ရေး, ရေး, ရေးခြင်းစသည်တို့) ကိုထိန်းချုပ်ရန် (စပြီးဖတ်ရှုခြင်းစသဖြင့်) ကိုကာကွယ်ရန်အချိန်ကုန်ခြင်းအချိန်ကိုထိန်းချုပ်ရန်အသုံးပြုသည်။
ရှည်လျားသောဆက်သွယ်မှု 0 န်ဆောင်မှုများတွင် stream_set_timeout တွင်အောက်ပါလုပ်ဆောင်ချက်များရှိသည်။
အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုကာကွယ်ခြင်း - 0 န်ဆောင်မှုခံယူသူသည်အချက်အလက်များနှင့်အချိန်ကြာမြင့်စွာမဆက်သွယ်ပါကဆာဗာပေါ်ရှိဆက်သွယ်မှုကိုဆိုင်းငံ့ထားနိုင်သည်။ သင့်တင့်သောအချိန်ကိုအချိန်ယူပြီးအချိန်မီပျင်းစရာကောင်းသောဆက်သွယ်မှုကိုပိတ်ပြီးစနစ်အရင်းအမြစ်များကိုဖြန့်ချိနိုင်သည်။
Deadlocks : ရေရှည်ပျင်းရိသောဆက်သွယ်မှုများသည်ပြည်တွင်းသတင်းများကိုပုံမှန်လုပ်ဆောင်ခြင်းကိုထိခိုက်စေနိုင်သည်။ သင့်လျော်သောအချိန်ကိုချိန်ညှိခြင်းကဤသို့မဖြစ်စေရန်တားဆီးနိုင်သည်။
0 န်ဆောင်မှုတည်ငြိမ်မှုကိုတိုးတက်အောင်လုပ်ခြင်း 0 န်ဆောင်မှု၏တည်ငြိမ်မှုကိုသေချာစေရန်ဆာဗာသည်မအောင်မြင်သောဆက်သွယ်မှုများကိုအချိန်မီသန့်ရှင်းရေးလုပ်နိုင်သည်။
stream_set_simeout function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">stream_set_timeout</span></span><span> ( resource </span><span><span class="hljs-variable">$stream</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$seconds</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$microseconds</span></span><span> = </span><span><span class="hljs-number">0</span></span><span> )
</span></span>$ stream : အချိန်ကုန်လုပ်ရန်လိုအပ်သည့် stream အရင်းအမြစ်။
$ စက္ကန့် - စက္ကန့်ပိုင်းအတွင်းသတ်မှတ်ထားသည့်အချိန်ကုန်ချိန်။
$ microseconds : optional parameter, microseconds ၏ microseconds အစိတ်အပိုင်းများကို set up ။
ရှည်လျားသောဆက်သွယ်မှု 0 န်ဆောင်မှုများတွင်အချိန်ကုန်များကိုပိုမိုလွယ်ကူစေရန်ရှုပ်ထွေးသောချိန်ခွင်လျှာပြ problem နာဖြစ်သည်။ အကယ်. အချိန်ကုန်သည်အလွန်တိုတောင်းပါကအချို့သည်အနည်းငယ်မျှသာမဟုတ်သောကြောင့်အချို့သောဆက်သွယ်မှုများကိုပြတ်တောက်စေနိုင်သည်။ အကယ်. အချိန်ကုန်လွန်သွားပါကအချိန်မီအရင်းအမြစ်များကိုပြန်လည်အသုံးပြုမည်မဟုတ်ပါ။
အများသုံးအချိန်အကြာမဟာဗျူဟာများစွာရှိသည်။
ပိုမိုရှည်လျားသောဆက်သွယ်မှုများအတွက် connection ကိုသေချာစေရန်သေချာစေရန်အချိန်အတိုင်းအတာတစ်ခုအတွင်း client ကို client သို့ client သို့ပို့ရန်ဖြစ်သည်။ ဤကိစ္စတွင်, အချိန်ကုန်အချိန်ကိုနှလုံးခုန်ခြင်း packet ည့်ခံချက်အရ dynamically ချိန်ညှိနိုင်သည်။ ဥပမာအားဖြင့်:
စက္ကန့် 30 တိုင်းတွင်နှလုံးရောဂါထုပ်ပိုးပေးပါ။
အကယ်. နှလုံးရောဂါထုပ်ပိုးကိုစက္ကန့် 60 အတွင်းမရရှိပါကအချိန်ကုန်ကိုဖြစ်ပေါ်စေသည်။
<span><span><span class="hljs-title function_ invoke__">stream_set_timeout</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-number">60</span></span><span>); </span><span><span class="hljs-comment">// အများဆုံးသတ်မှတ်ပါ60ဒုတိယတက်ကြွမဟုတ်ရင်အချိန်ကုန်</span></span><span>
</span></span>ရှည်လျားသောဆက်သွယ်မှု 0 န်ဆောင်မှုပေးသည့်အချက်အလက်များသည်ပြတ်တောင်းပြတ်တောင်းဖြစ်နေပါကအချိန်ကာလတစ်ခုအတွင်းခွဲစိတ်မှုမရှိပါ။ မလိုအပ်သောအရင်းအမြစ်အသုံးပြုမှုကိုရှောင်ရှားရန်ပျင်းရိအချိန်ကုန်ကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့် 5 မိနစ်တိုင်းဒေတာအပြန်အလှန်မလိုဘဲအဆက်ဖြတ်ရန်သတ်မှတ်ပါ။
<span><span><span class="hljs-title function_ invoke__">stream_set_timeout</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-number">300</span></span><span>); </span><span><span class="hljs-comment">// ပျင်းရိသောဆက်သွယ်မှုအတွက်အချိန်ကုန်အချိန်ကိုသတ်မှတ်ပါ300စက်ဏန့်(5မိနစ်)</span></span><span>
</span></span>လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်ရှည်လျားသောဆက်သွယ်မှုများသည် "တက်ကြွ" သို့မဟုတ် "ပျင်းရိခြင်း" များသာမကဘဲအချက်အလက်များကိုဖတ်ရှုခြင်းနှင့်ရေးသားခြင်းများကိုထည့်သွင်းစဉ်းစားရမည်။ ဥပမာအားဖြင့်, ဒေတာများကိုလက်ခံရရှိသည့်အခါ 0 န်ဆောင်မှုခံယူသူသည်ကွန်ယက်မတည်ငြိမ်မှုသို့မဟုတ်အကြောင်းပြချက်အချို့ကြောင့်အချိန်မီမရောက်ရှိနိုင်ပါ။ ဤကိစ္စတွင်ဆာဗာသည်ကြာမြင့်စွာစောင့် ဆိုင်း ခြင်းမှရှောင်ရှားရန်အတွက်ဆာဗာသည်စာဖတ်ခြင်းနှင့်ရေးသားရန်အချိန်ကို set up လုပ်ပြီးရေးနိုင်သည်။
<span><span><span class="hljs-comment">// ဒေတာကိုဖတ်တဲ့အခါအချိန်ကိုသတ်မှတ်ပါ 5 စက်ဏန့်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">stream_set_timeout</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span></span>စာဖတ်ခြင်းနှင့်စာရေးရန်အချိန်ယူခြင်းအားဖြင့်ဆာဗာသည်ပျက်ကွက်သောတောင်းဆိုမှုများကိုအချိန်မီတုံ့ပြန်ပြီးသင့်လျော်သောပြန်လည်တောင်းခံခြင်းသို့မဟုတ်အမှားကိုင်တွယ်နိုင်သည်။
ရှည်လျားသောဆက်သွယ်မှုများ၌အချိန်ကြာမြင့်စွာဆက်တင်ခြင်းကိုခြွင်းချက်ကိုင်တွယ်သည့်ယန္တရားများနှင့် တွဲဖက်. အသုံးပြုသင့်သည်။ PHP တွင် Stream_get_Meta_Data မှလက်ရှိ status ကိုစစ်ဆေးနိုင်သည်။
<span><span><span class="hljs-comment">// တည်ဆောက်သည် 10 စက်ဏန့်超时</span></span><span>
</span><span><span class="hljs-title function_ invoke__">stream_set_timeout</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
</span><span><span class="hljs-comment">// ဒေတာကိုဖတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fread</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span>);
</span><span><span class="hljs-comment">// အဆိုပါစီး၏ metadata ရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$metaData</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_get_meta_data</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$metaData</span></span><span>[</span><span><span class="hljs-string">'timed_out'</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-comment">// သင်ဤစစ်ဆင်ရေးကိုပြန်လည်ကြိုးစားသို့မဟုတ် disconnect နိုင်ပါတယ်</span></span><span>
}
</span></span>faceout အချိန်ကိုရွေးချယ်ပါ ။ 0 န်ဆောင်မှု၏လိုအပ်ချက်အရသင့်တော်သောအချိန်ကုန်အချိန်ကိုသတ်မှတ်ပါ။ အကယ်. ဒေတာအပြန်အလှန်အကျိုးသက်ရောက်မှုကိုမကြာခဏဖြစ်လျှင်အချိန်ကုန်အချိန်ကိုပိုမိုတိုတောင်းနိုင်သည်။ အကယ်. အပြန်အလှန်ဆက်သွယ်မှုနည်းပါကအချိန်ကုန်အချိန်ကိုပိုမိုကြာရှည်စွာသတ်မှတ်နိုင်သည်။ အချိန်သိပ်သည်းလွန်းသည့်အချိန်ကြာမြင့်စွာနေသည့်အချိန်ကြာမြင့်စွာမထားပါနှင့်။ ၎င်းသည်စနစ်၏တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်လိမ့်မည်။
မမှန်ကန်သောဆက်သွယ်မှုများကိုပုံမှန်သန့်ရှင်းစင်ကြယ်ခြင်း - အချိန်ကြာမြင့်စွာမလှုပ်ရှားနိုင်သည့်ဆက်သွယ်မှုများကိုအချိန်မီပိတ်ထားရန်အချိန်နှင့်ချီ။ ပိတ်ထားရန်အချိန်ကောင်းကိုစစ်ဆေးပါ။
မြင့်မားသောတစ်ပြိုင်နက်တည်းဆိုဒ်များတွင်အချိန်ကုန်စေသောနည်းဗျူဟာ - သင်၏ရှည်လျားသောဆက်သွယ်မှုဝန်ဆောင်မှုသည်မြင့်မားသောတစ်ပြိုင်နက်တည်းကတောင်းဆိုမှုများကိုကိုင်တွယ်ရန်လိုအပ်ပါက,
အခြားယန္တရားများနှင့်ပေါင်းစပ် : အချိန်ကြာမြင့်စွာချိတ်ဆက်ထားတဲ့ဝန်ဆောင်မှုများမြင့်မားသောရရှိမှုမြင့်မားစေရန်အတွက်အချိန်ကုန်ခြင်း, ပြန်လည်ပြုပြင်ခြင်း,
Stream_set_timeout သည် PHP တွင်အထူးသဖြင့်ရှည်လျားသောဆက်သွယ်မှု 0 န်ဆောင်မှုများတွင်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ကျိုးကြောင်းဆီလျော်သောအချိန်ကိုသတ်မှတ်ခြင်းသည် connection status ကိုထိရောက်စွာစီမံခန့်ခွဲနိုင်သည်, အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားနိုင်ပြီးထိရောက်စွာတည်ငြိမ်သော 0 န်ဆောင်မှုများကိုရှောင်ရှားနိုင်သည်။ အမှန်တကယ် application များအနေဖြင့် 0 န်ဆောင်မှုလိုအပ်ချက်နှင့်အညီအချိန်ကုန်ဆုံးနည်းနှင့်တစ်ချိန်တည်းတွင် connection status ကိုအချိန်မီစစ်ဆေးခြင်းနှင့်ကိုင်တွယ်ရန်သေချာစေရန်ခြွင်းချက်ကိုင်တွယ်ယန္တရားနှင့်ပေါင်းစပ်ထားသင့်သည်။