Контекст отменен при использовании Go с BigQuery

Я пытаюсь вставить запись в biqquery и здесь код, который выполняет вставку.

      func (s *Storage) Insert(w *warehouse.WarehouseRecord) error {
   event, err := w.Marshal()
   if err != nil {
      return err
   }
   logger.Info("inserting record to big query")
   ins := s.client.Dataset(s.dataSet).Table(event.GetTableName()).Inserter()
   ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
   defer cancel()
   if err := ins.Put(ctx, event); err != nil {
      return err
   }
   return nil
}

Когда я запускаю свое приложение, вставка завершается ошибкой. Ошибка говорит context canceled, но я не отменяю контекст от родителя, я подозреваю, что это происходит внутри клиентского пакета. Кто-нибудь из вас сталкивался с этой ошибкой?

      Post "https://bigquery.googleapis.com/bigquery/v2/projects/dinesh-dev/datasets/analytics_test/tables/agent/insertAll?alt=json&prettyPrint=false": context canceled{"error":"Post \"https://bigquery.googleapis.com/bigquery/v2/projects/dinesh-dev/datasets/analytics_test/tables/agent/insertAll?alt=json\u0026prettyPrint=false\": context canceled"

1 ответ

Возможно,contextвы дали при инициализацииfoo.NewClient(ctx, ...)отменяется. Этот контекст не следует отменять, см. документ:

// Не отменять контекст, переданный NewClient: набор номера происходит асинхронно, и контекст используется для обновления учетных данных в фоновом режиме.

Другие вопросы по тегам