client.Do закрывает соединение в фиксированное время независимо от времени ожидания набора или тайм-аута канала - PullRequest
0 голосов
/ 30 апреля 2020

Client.Do () всегда закрывает соединение через 30 секунд, независимо от того, что я установил в приведенном ниже коде.

reportContext, cancel := context.WithTimeout(context.Background(), (rh.reportJobTimeout * time.Duration(evalContext.attemptID + 1)) + (time.Second * time.Duration(10)))
    defer cancel()
    req = req.WithContext(reportContext)

    resp, err := netClient.Do(req)

Переменные

rh.reportJobTimeout = time.Second * time.Duration(60)
attemptID = 2

, поэтому контекст я установка здесь - 3 минуты 10 секунд

и в блоке инициализации я делаю это для инициализации netClient

reportProxyTransport := &http.Transport{
        Proxy: http.ProxyFromEnvironment,
    }
    client := &http.Client{
        Transport: reportProxyTransport,
        Timeout: 5*time.Minute,
    }

Я пробовал client.timeout 0 и 5 минут, но соединение установлено закрываясь через 30 секунд всегда. Я не уверен, откуда эта подборка этих 30 секунд

Может кто-нибудь помочь мне, где я иду не так?

Еще одно обновление, если я использую context.WithTimeout чего-то меньше, чем 30 секунд тайм-аут работает правильно. Если я сделаю это 10 секунд, соединение закрывается через 10 секунд. Если я сделаю что-то больше 30 секунд, соединение просто закроется через 30 секунд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...