3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
問題是,當(dāng)使用 goroutine 時(shí),您會(huì)立即向客戶端返回成功消息。如果確實(shí)如此,則意味著您的 goroutine 需要能夠在上傳到 S3 時(shí)發(fā)生錯(cuò)誤時(shí)進(jìn)行恢復(fù)(不要丟失圖像)。因此,要么您處理這個(gè)問題,要么異步通知您的客戶端上傳失敗,以便客戶端可以重試。

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
這個(gè)問題太寬泛,無法單一回答。一般來說,有以下三種可能的方法:
等待您的 goroutine 完成以處理任何錯(cuò)誤。
確保你的 goroutine 可以處理(或者可能忽略)它們遇到的任何錯(cuò)誤,這樣返回錯(cuò)誤就無關(guān)緊要了。
讓你的 goroutine 記錄任何錯(cuò)誤,以便稍后處理,可能由人類處理,也可能由某些清理/重試函數(shù)處理。
哪種方法最好取決于具體情況。

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
對(duì)于任何異步任務(wù) - 例如在后臺(tái) go 例程中上傳文件 - 可以以將 a 返回chan error
給調(diào)用者的方式編寫上傳函數(shù)。然后,調(diào)用者可以稍后通過讀取chan error
.
但是,如果您接受上傳請(qǐng)求,我建議您創(chuàng)建一個(gè)工作上傳 go-routine,通過通道接受文件上傳。輸出“錯(cuò)誤”通道可以跟蹤成功/失敗。如果需要,上傳的錯(cuò)誤可以寫回原始上傳通道隊(duì)列(包括重試計(jì)數(shù)和重試最大值 - 因此有問題的有效負(fù)載不會(huì)永遠(yuǎn)循環(huán))。
- 3 回答
- 0 關(guān)注
- 173 瀏覽
添加回答
舉報(bào)