diff --git a/execute_query.go b/execute_query.go index c01b6cc..a809621 100644 --- a/execute_query.go +++ b/execute_query.go @@ -45,8 +45,13 @@ func (qe *QueryExecutor) executeQuery() ([]byte, error) { qe.Logger.Debug("Error while executing http request", map[string]interface{}{"error": err.Error()}) return err } - defer io.Copy(io.Discard, httpResponse.Body) - defer httpResponse.Body.Close() + defer func() { + _, err := io.Copy(io.Discard, httpResponse.Body) + if err != nil { + qe.Logger.Debug("Error while discarding http response body;", map[string]interface{}{"error": err.Error()}) + } + httpResponse.Body.Close() + }() if httpResponse.StatusCode < 200 || httpResponse.StatusCode >= 204 { return fmt.Errorf("HTTP error - unacceptable status code: \"%s\" for \"%s\"", httpResponse.Status, httpRequest.URL) @@ -63,7 +68,6 @@ func (qe *QueryExecutor) executeQuery() ([]byte, error) { qe.Logger.Debug("Error while unmarshalling http response;", map[string]interface{}{"error": err.Error()}) return fmt.Errorf("Error while unmarshalling http response: %s", err.Error()) } - return nil }, retry.OnRetry(func(n uint, err error) { diff --git a/http.go b/http.go index 4b83a48..497f050 100644 --- a/http.go +++ b/http.go @@ -11,14 +11,18 @@ import ( func (b *BaseClient) createHttpClient() (http_client *http.Client) { httpTransport := &http.Transport{ - MaxIdleConns: 10, + MaxIdleConns: 512, + MaxConnsPerHost: 512, + MaxIdleConnsPerHost: 512, IdleConnTimeout: 15 * time.Second, ResponseHeaderTimeout: 15 * time.Second, DisableKeepAlives: false, + DisableCompression: false, } if strings.HasPrefix(b.endpoint, "http://") { http_client = &http.Client{ + Timeout: 15 * time.Second, Transport: httpTransport, CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse