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 секунд