C#-寫一個 Retry 機制程式碼
平常,Web 比較多人問關於「時間」的問題是「排程」,在課程被問到「Retry」機制,想想,真的托開發微信API的福,我還真的寫過那麼一小段 Retry 機制的程式碼。完整程式碼沒幾行,就說點小故事,拉點畫面行數吧。
當時我們與微信的測試主機是放在 Azure 東亞(香港)機房,不過因為大陸特別的網路關係,每每從下班之後就變得不穩定,我們某個 API 需要收到對方很明確的回應(成功-失敗)訊息才能往下進行。但好死不死,大陸在下班至午夜的國際網路相當不穩定,以至於我們的 API 常常在下班|半夜被搞死,那段時間,半夜看著Slack的Log偵錯,更是家常便飯。找了好久,才確定那支 API 不是問題點。但問題點來了,對方不知是有意或無意 loss 非內陸的請求,我們知道,把正式機放到 China Azure 就能解決特別的網路問題(後來我們正式機放進去了,還是一堆雷 >__< )。有無更好的解法?想了很久,我決定寫一個 Retry 機制。