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

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