Skip to content

Commit 13a974b

Browse files
fix(performance): reuse http client
1 parent 966c944 commit 13a974b

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

supertokens/querier.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ var (
4949
querierInterceptor func(*http.Request, UserContext) (*http.Request, error)
5050
querierGlobalCacheTag uint64
5151
querierDisableCache bool
52+
querierHTTPClient *http.Client
5253
)
5354

5455
func SetQuerierApiVersionForTests(version string) {
@@ -113,8 +114,7 @@ func (q *Querier) GetQuerierAPIVersion(userContextIn ...UserContext) (string, er
113114
req.Header = headers
114115
}
115116

116-
client := &http.Client{}
117-
resp, err := client.Do(req)
117+
resp, err := querierHTTPClient.Do(req)
118118
return resp, nil, err
119119
}, len(QuerierHosts), nil)
120120

@@ -162,6 +162,16 @@ func initQuerier(hosts []QuerierHost, APIKey string, interceptor func(*http.Requ
162162
querierInterceptor = interceptor
163163
querierGlobalCacheTag = GetCurrTimeInMS()
164164
querierDisableCache = disableCache
165+
166+
// Initialize HTTP client with optimal settings for connection reuse
167+
querierHTTPClient = &http.Client{
168+
Timeout: 30 * time.Second,
169+
Transport: &http.Transport{
170+
MaxIdleConns: 100,
171+
MaxIdleConnsPerHost: 10,
172+
IdleConnTimeout: 90 * time.Second,
173+
},
174+
}
165175
}
166176
}
167177

@@ -205,8 +215,7 @@ func (q *Querier) SendPostRequest(path string, data map[string]interface{}, user
205215
}
206216
}
207217

208-
client := &http.Client{}
209-
resp, err := client.Do(req)
218+
resp, err := querierHTTPClient.Do(req)
210219
return resp, nil, err
211220
}, len(QuerierHosts), nil)
212221
return resp, err
@@ -256,8 +265,7 @@ func (q *Querier) SendDeleteRequest(path string, data map[string]interface{}, pa
256265
}
257266
}
258267

259-
client := &http.Client{}
260-
resp, err := client.Do(req)
268+
resp, err := querierHTTPClient.Do(req)
261269
return resp, nil, err
262270
}, len(QuerierHosts), nil)
263271
return resp, err
@@ -360,8 +368,7 @@ func (q *Querier) SendGetRequest(path string, params map[string]string, userCont
360368
}
361369
}
362370

363-
client := &http.Client{}
364-
response, err := client.Do(req)
371+
response, err := querierHTTPClient.Do(req)
365372
if err != nil {
366373
return nil, nil, err
367374
}
@@ -435,8 +442,7 @@ func (q *Querier) SendGetRequestWithResponseHeaders(path string, params map[stri
435442
}
436443
}
437444

438-
client := &http.Client{}
439-
resp, err := client.Do(req)
445+
resp, err := querierHTTPClient.Do(req)
440446
return resp, nil, err
441447
}, len(QuerierHosts), nil)
442448
}
@@ -478,8 +484,7 @@ func (q *Querier) SendPutRequest(path string, data map[string]interface{}, userC
478484
}
479485
}
480486

481-
client := &http.Client{}
482-
resp, err := client.Do(req)
487+
resp, err := querierHTTPClient.Do(req)
483488
return resp, nil, err
484489
}, len(QuerierHosts), nil)
485490
return resp, err

0 commit comments

Comments
 (0)