diff --git a/.github/workflows/obitest.yml b/.github/workflows/obitest.yml index b17be06..9d0f12a 100644 --- a/.github/workflows/obitest.yml +++ b/.github/workflows/obitest.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v5 with: go-version: '1.23' - name: Checkout obitools4 project - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run tests run: make githubtests diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6ffb05c..c8855d6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: with: go-version: "1.26" - name: Checkout obitools4 project - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run tests run: make githubtests @@ -49,7 +49,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go uses: actions/setup-go@v5 @@ -107,7 +107,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/go.sum b/go.sum index 43b4e10..f8938c3 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,6 @@ github.com/PaesslerAG/jsonpath v0.1.0 h1:gADYeifvlqK3R3i2cR5B4DGgxLXIPb3TRTH1mGi github.com/PaesslerAG/jsonpath v0.1.0/go.mod h1:4BzmtoM/PI8fPO4aQGIusjGxGir2BzcV0grWtFzq1Y8= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= -github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/buger/jsonparser v1.1.2 h1:frqHqw7otoVbk5M8LlE/L7HTnIq2v9RX6EJ48i9AxJk= github.com/buger/jsonparser v1.1.2/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/chen3feng/stl4go v0.1.1 h1:0L1+mDw7pomftKDruM23f1mA7miavOj6C6MZeadzN2Q= diff --git a/pkg/obilua/luahttp.go b/pkg/obilua/luahttp.go index 07d80e6..6120ae3 100644 --- a/pkg/obilua/luahttp.go +++ b/pkg/obilua/luahttp.go @@ -4,15 +4,33 @@ import ( "io" "net/http" "strings" + "sync" "time" + "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault" lua "github.com/yuin/gopher-lua" ) const httpClientTimeout = 30 * time.Second -var _httpClient = &http.Client{ - Timeout: httpClientTimeout, +var ( + _httpClient *http.Client + _httpClientOnce sync.Once +) + +func getHTTPClient() *http.Client { + _httpClientOnce.Do(func() { + conns := 2 * obidefault.ParallelWorkers() + _httpClient = &http.Client{ + Transport: &http.Transport{ + MaxIdleConnsPerHost: conns, + MaxConnsPerHost: conns, + IdleConnTimeout: 90 * time.Second, + }, + Timeout: httpClientTimeout, + } + }) + return _httpClient } // RegisterHTTP registers the http module in the Lua state as a global, @@ -46,7 +64,7 @@ func luaHTTPPost(L *lua.LState) int { } req.Header.Set("Content-Type", "application/json") - resp, err := _httpClient.Do(req) + resp, err := getHTTPClient().Do(req) if err != nil { L.Push(lua.LNil) L.Push(lua.LString(err.Error())) diff --git a/pkg/obioptions/version.go b/pkg/obioptions/version.go index 31199eb..86e46da 100644 --- a/pkg/obioptions/version.go +++ b/pkg/obioptions/version.go @@ -3,7 +3,7 @@ package obioptions // Version is automatically updated by the Makefile from version.txt // The patch number (third digit) is incremented on each push to the repository -var _Version = "Release 4.4.33" +var _Version = "Release 4.4.34" // Version returns the version of the obitools package. // diff --git a/version.txt b/version.txt index 1cfc545..b3f8f6f 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -4.4.33 +4.4.34