Publish ထားတဲ့ အက်ပ်ကို republish လုပ်နေစဉ်လည်း ယခု ဆက်ရှိနေပါတယ်
Mythex မှာ အက်ပ်တစ်ခုကို republish လုပ်ရင် live site က build အသစ် အဆင်သင့်ဖြစ်မချင်း ဗားရှင်းဟောင်းကို ဆက် serve လုပ်ပြီး၊ ပြီးရင် အသစ်ဆီ ပြောင်းပါတယ်။ ဒီပြောင်းလဲမှု မတိုင်ခင် republish က build တစ်လျှောက်လုံး site ကို ပိတ်ထားခဲ့ပါတယ်– အသုံးပြုသူတွေက "This published app is offline or the link was not found" ကို တစ်မိနစ်ခန့် မြင်ခဲ့ရပြီး၊ နောက် reload လုပ်ရင် စာမျက်နှာ ပြန်အလုပ်လုပ်ပါတယ်။ အက်ပ် live ဖြစ်နေစဉ် မှားယွင်းစွာ offline ပုံပေါ်တဲ့ နည်းလမ်း နှစ်ခု ထပ်ပြင်ထားပါတယ်။
၁။ Republish လုပ်တာက site ကို မပိတ်တော့ပါ
နောက်ကွယ်မှာ Publish ထားတဲ့ အက်ပ်တိုင်းမှာ ဘယ် build ကို serve လုပ်ရမလဲ ပြတဲ့ record ရှိပါတယ်။ republish က အဲဒီ record ကို ပြန်သုံးပြီး ကြာသမျှ "building" ဟု မှတ်ထားခဲ့ပါတယ်– အသုံးပြုသူတွေကို ဦးတည်ပေးတဲ့ edge အပိုင်းက "live" မှတ်ထားတဲ့ record တွေကိုသာ serve လုပ်ပါတယ်။ ဒါကြောင့် republish တိုင်း build မပြီးမချင်း site ပျောက်သွားခဲ့ပါတယ်။ စမ်းသပ် အက်ပ်ငယ်လေးတစ်ခုမှာ ပြန်ဖန်တီးကြည့်တော့ republish တစ်ကြိမ်လျှင် ~50 စက္ကန့် offline ဖြစ်ပါတယ်။
အခု live အက်ပ်ကို republish စတင်တဲ့အခါ record က ယခင် build ရှိကြောင်း မှတ်ထားပြီး ဆက်ညွှန်ပေးပါတယ်။ edge က အသစ် build ကို တည်ဆောက်နေစဉ် ယခင် build ကို serve လုပ်ပြီး၊ pointer က အောင်မြင်တဲ့အခါမှသာ အသစ်ဆီ ရွေ့ပါတယ်။ build အသစ် မအောင်မြင်ရင် သင့်အသုံးပြုသူတွေ သတိမထားမိပါဘူး– ဗားရှင်းဟောင်း ဆက်ရှိနေမှာပါ။
ပထမ publish၊ ဒါမှမဟုတ် ရပ်ထားတဲ့ သို့မဟုတ် unpublish လုပ်ထားတဲ့ အက်ပ်ကို republish ပြုလုပ်တာက build ပြီးမှ live ဖြစ်ပါတယ်– ပြဖို့ ဗားရှင်းဟောင်း မရှိလို့ပါ။
၂။ ခဏ ကျပ်ခြင်းက "not found" လို မပေါ်တော့ပါ
သင့် Publish ထားတဲ့ အက်ပ်ရှေ့က ဝန်ဆောင်မှုက site တစ်ခုစီ ဘယ်မှာရှိလဲဆိုတာ ကျွန်တော်တို့ API ကို မေးပါတယ်။ အရင်က ရလဒ်မအောင်မြင်တဲ့ မည်သည့် အဖြေမဆို– ခဏ server error၊ ချိတ်ဆက်မှု ပြတ်တာ– ကို "ဒီ site မရှိပါ" လို့ သတ်မှတ်ပြီး offline စာမျက်နှာ ပြခဲ့ပါတယ်။ စက္ကန့်အနည်းငယ်အကြာ reload လုပ်ရင် အလုပ်လုပ်တာမို့ ရှုပ်ထွေးစေခဲ့ပါတယ်။
အခု "not found" အဖြေအမှန်ကသာ not found လို့ သတ်မှတ်ပါတယ်–
- အခြား ပျက်ကွက်မှုတိုင်းကို တစ်ကြိမ် ပြန်ကြိုးစားပါတယ်။
- ဒါတောင် မအောင်မြင်ရင် edge က နောက်ဆုံး မှန်ကန်ခဲ့တဲ့ အဖြေကနေ site ကို ရက်စွဲ ၁ နာရီအထိ serve လုပ်ပါတယ်။
- ဘယ်တော့မှ အဖြေမရှိခဲ့ရင်သာ "ယာယီ မရနိုင်ပါ" စာမျက်နှာ ပြပါတယ်– ဘယ်တော့မှ "not found" မဟုတ်ပါ။
Custom domain တွေက production နဲ့ staging စနစ်ကိုလည်း အပြိုင် မေးပါတယ်၊ ဒါကြောင့် နှေးတဲ့ staging ဆာဗာက production domain ကို ဘယ်တော့မှ မကြန့်ကြာစေပါဘူး။
၃။ ရပ်ထားတဲ့ အက်ပ်က ရပ်ထားကြောင်း ပြပါတယ်
Publish ထားတဲ့ အက်ပ်တွေက သင့် credit balance ပေါ် run ပါတယ်။ ကုန်သွားရင် ထပ်ဖြည့်မချင်း အက်ပ် ရပ်ထားပြီး၊ ဖြည့်လိုက်ရင် သူ့ဘာသာ ပြန်ရပါတယ်။ ဒါပေမယ့် ရပ်ထားတဲ့ အက်ပ်က ဖျက်ထားတဲ့ အက်ပ်နဲ့ တူပုံ ပေါ်ခဲ့ပါတယ်။
အခု ရပ်ထားတဲ့ အက်ပ်ကို ကြည့်တဲ့ visitor က "ဤအက်ပ် ရပ်ထားပါသည်" ကို မြင်ပြီး၊ ပိုင်ရှင်အတွက် ပြန်ဝင်နည်းလည်း ရှိပါတယ်၊ တုံ့ပြန်ချက်ကို ဘယ်တော့မှ cache မလုပ်တာမို့ ပြန်ဖွင့်တာနဲ့ အက်ပ်ကို ချက်ချင်း ဝင်ရနိုင်ပါတယ်။ အက်ပ်က တခြား အကြောင်းကြောင့် မရနိုင်ရင် visitor တွေက "ဤအက်ပ် မရနိုင်ပါ" ကို မြင်ပြီး အကြောင်းရင်းကို မပြောပါဘူး။
ဘာကြောင့် ဒါက အရေးကြီးလဲ
Publish ထားတဲ့ အက်ပ်က သင် မျှဝေထားတဲ့ အရာပါ– bio လင့်ခ်၊ စီးပွားရေးကတ်၊ ပထမ customer တွေနဲ့ အတူ။ သင် ပိုကောင်းအောင် လုပ်နေချိန်မှာလည်း ဆက်ရှိနေပြီး၊ အမှားလေး ဖြစ်ရင်လည်း ရပ်မသွားဘဲ၊ ရပ်ထားတာဆိုရင် ရိုးသားစွာ ပြောသင့်ပါတယ်။
ပိုမိုဖတ်ရန် docs မှာ– how to publish နဲ့ hosting limits။ တူညီတဲ့ စိတ်ကူးရဲ့ infrastructure ဘက်ကတော့ deploy တွေကို 502 zero ဘယ်လို ရောက်အောင် လုပ်ခဲ့လဲ။