我正在使用 Go BigQuery 客戶端包,但我對用法有點困惑context。在文檔中,只有該Put函數(shù)明確提到使用帶有超時的新上下文以避免無限期重試。context.Background()用于所有其他呼叫是否安全?
1 回答

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊
來自golang 網(wǎng)站:
包 context 定義了 Context 類型,它攜帶跨 API 邊界和進(jìn)程之間的截止日期、取消信號和其他請求范圍的值。
因此,上下文被設(shè)計為針對每個用例進(jìn)行調(diào)整和定制。您可以使用庫提供的功能來實現(xiàn)這一目標(biāo)。
WithCancel、WithDeadline 和 WithTimeout 函數(shù)采用 Context(父級)并返回派生的 Context(子級)和 CancelFunc。調(diào)用 CancelFunc 會取消子級及其子級,刪除父級對子級的引用,并停止任何關(guān)聯(lián)的計時器
因此,goDocs建議在您的上下文中使用 WithTimeout 函數(shù),同時將數(shù)據(jù)插入 BigQuery 并防止重復(fù),正如您已經(jīng)看到的那樣。
唯一必須的是傳遞一個非零的上下文。你通常會使用它context.Background()
作為一種方式(正如我在Cloud Github 共享的snippets.gocontext.TODO
中看到的那樣),但如果你不確定要使用哪一種,你可以安全地通過。
- 1 回答
- 0 關(guān)注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消