create fastClient once

This commit is contained in:
6543 2022-06-11 22:46:38 +02:00
parent 8add62ee2f
commit 4e42bca189
2 changed files with 4 additions and 3 deletions

View file

@ -18,6 +18,7 @@ var ErrorNotFound = errors.New("not found")
type Client struct { type Client struct {
giteaRoot string giteaRoot string
giteaAPIToken string giteaAPIToken string
fastClient *fasthttp.Client
infoTimeout time.Duration infoTimeout time.Duration
contentTimeout time.Duration contentTimeout time.Duration
} }
@ -38,6 +39,7 @@ func NewClient(giteaRoot, giteaAPIToken string) *Client {
giteaAPIToken: giteaAPIToken, giteaAPIToken: giteaAPIToken,
infoTimeout: 5 * time.Second, infoTimeout: 5 * time.Second,
contentTimeout: 10 * time.Second, contentTimeout: 10 * time.Second,
fastClient: getFastHTTPClient(),
} }
} }
@ -111,7 +113,7 @@ func (client *Client) do(timeout time.Duration, url string) (*fasthttp.Response,
req.Header.Set(fasthttp.HeaderAuthorization, "token "+client.giteaAPIToken) req.Header.Set(fasthttp.HeaderAuthorization, "token "+client.giteaAPIToken)
res := fasthttp.AcquireResponse() res := fasthttp.AcquireResponse()
err := getFastHTTPClient(timeout).Do(req, res) err := client.fastClient.DoTimeout(req, res, timeout)
return res, err return res, err
} }

View file

@ -6,9 +6,8 @@ import (
"github.com/valyala/fasthttp" "github.com/valyala/fasthttp"
) )
func getFastHTTPClient(timeout time.Duration) *fasthttp.Client { func getFastHTTPClient() *fasthttp.Client {
return &fasthttp.Client{ return &fasthttp.Client{
ReadTimeout: timeout,
MaxConnDuration: 60 * time.Second, MaxConnDuration: 60 * time.Second,
MaxConnWaitTimeout: 1000 * time.Millisecond, MaxConnWaitTimeout: 1000 * time.Millisecond,
MaxConnsPerHost: 128 * 16, // TODO: adjust bottlenecks for best performance with Gitea! MaxConnsPerHost: 128 * 16, // TODO: adjust bottlenecks for best performance with Gitea!