api: Add ability to CloseIdleConnection for one-off httpClient use cases. (#1513)

Signed-off-by: cuisongliu <cuisongliu@qq.com>
This commit is contained in:
cuisongliu 2024-09-04 23:00:55 +08:00 committed by GitHub
parent a5e134014f
commit 89f21b2cba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 0 deletions

View File

@ -79,6 +79,10 @@ type Client interface {
Do(context.Context, *http.Request) (*http.Response, []byte, error) Do(context.Context, *http.Request) (*http.Response, []byte, error)
} }
type CloseIdler interface {
CloseIdleConnections()
}
// NewClient returns a new Client. // NewClient returns a new Client.
// //
// It is safe to use the returned Client from multiple goroutines. // It is safe to use the returned Client from multiple goroutines.
@ -118,6 +122,10 @@ func (c *httpClient) URL(ep string, args map[string]string) *url.URL {
return &u return &u
} }
func (c *httpClient) CloseIdleConnections() {
c.client.CloseIdleConnections()
}
func (c *httpClient) Do(ctx context.Context, req *http.Request) (*http.Response, []byte, error) { func (c *httpClient) Do(ctx context.Context, req *http.Request) (*http.Response, []byte, error) {
if ctx != nil { if ctx != nil {
req = req.WithContext(ctx) req = req.WithContext(ctx)