你已發布嘅 app 而家重新發布時仍然保持運行
喺 Mythex 重新發布一個 app 時,你嘅上線網站而家會繼續提供舊版本,直至新構建準備好,然後先切換過去。喺呢個改動之前,重新發布會令網站喺整個構建期間都離線:訪客會見到「此已發布 app 離線或者找不到連結」,大約一分鐘後,重新整理頁面就又可以正常顯示。我哋亦修正咗另外兩種令上線 app 被錯誤地視為離線嘅情況。
1. 重新發布唔再令你嘅網站停頓
喺背後,每個已發布嘅 app 都有一筆記錄,指明應該提供邊個構建。重新發布會重用該記錄,並喺整個過程中將它標記為「建構中」,而我哋邊緣負責路由訪客嘅部分,只會提供標記為「上線」嘅記錄。所以每次重新發布,網站都會消失,直至構建完成。我哋喺一個小型測試 app 上重現咗這個情況:每次重新發布大約離線 50 秒。
而家,當一個已上線嘅 app 開始重新發布,記錄會記住有一個舊構建存在,並繼續指向它。邊緣會喺新構建進行期間繼續提供舊構建,指標只會喺新構建成功之後先移到新構建。如果新構建失敗,你嘅訪客根本唔會察覺,舊版本只係繼續運行。
首次發布,或者重新發布一個曾經暫停或者取消發布嘅 app,仍然要等構建完成先會上線,因為當中冇舊版本可以顯示。
2. 短暫故障唔再顯示「找不到」
你已發布 app 前面嘅服務,會向我哋嘅 API 查詢每個網站位於邊度。以前,只要回應唔成功(例如臨時嘅伺服器錯誤或者斷開嘅連線),佢都會視為「呢個網站唔存在」,然後顯示離線頁面。過咗一秒重新整理就會正常,所以令人困惑。
而家只有真正嘅「找不到」回應先會被視為找不到:
- 任何其他失敗都會重試一次。
- 如果仍然失敗,邊緣會使用最後已知正確嘅答案提供網站,最長一小時。
- 只有當它從來未有過任何答案,才會顯示「暫時無法使用」頁面,而絕對唔會顯示「找不到」。
自訂網域亦會同時查詢我哋嘅正式環境同測試環境系統,所以測試伺服器慢,永遠唔會拖慢正式環境網域。
3. 已暫停嘅 app 會顯示佢已暫停
已發布嘅 app 係用你嘅 credit 餘額運行嘅。如果餘額用盡,app 就會暫停,直至你增值為止,而增值之後會自動恢復。但以前,已暫停嘅 app 看起來同已刪除嘅 app 一模一樣。
而家訪客去到一個已暫停嘅 app,會見到**「此 app 已暫停」**,並為擁有者提供返回嘅途徑,而且該回應永遠唔會被快取,所以 app 一旦恢復運行,就可以即時再次訪問。如果 app 因為其他原因無法使用,訪客就會見到「此 app 目前無法使用」,但唔會被告知原因。
點解呢件事重要
已發布嘅 app 係你分享出去嘅嘢:放喺 bio 連結、名片上,或者交俾你首批客戶。佢應該表現得似一個真正嘅網站:你改善佢嘅時候保持運行,遇到短暫故障時可以撐過,並且暫停嗰陣會誠實咁顯示。
更多關於發布嘅資料,可以睇文件:點樣發布 同託管限制。至於同一個概念嘅基礎設施一面,可以睇我哋點樣令自己嘅部署達到零 502。