move limiting into foo

master
Bel LaPointe 2022-01-11 22:58:06 -05:00
parent b54be3c32c
commit d361c2164f
2 changed files with 13 additions and 6 deletions

View File

@ -1,7 +1,10 @@
package broker
import (
"context"
"local/truckstop/config"
"net/http"
"strings"
"golang.org/x/time/rate"
)
@ -15,3 +18,11 @@ var limiter = rate.NewLimiter(rate.Limit(1.0/20.0), 1)
type Broker interface {
Search([]config.State) ([]Job, error)
}
func do(r *http.Request) (*http.Response, error) {
limiter.Wait(context.Background())
if strings.Contains(strings.ToLower(r.URL.Path), "login") {
authlimiter.Wait(context.Background())
}
return http.DefaultClient.Do(r)
}

View File

@ -2,7 +2,6 @@ package broker
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
@ -110,8 +109,7 @@ func (ntg NTGVision) refreshAuth() error {
return err
}
setNTGHeaders(request)
authlimiter.Wait(context.Background())
resp, err := http.DefaultClient.Do(request)
resp, err := do(request)
if err != nil {
return err
}
@ -140,9 +138,7 @@ func (ntg NTGVision) _search(states []config.State) (io.ReadCloser, error) {
if err != nil {
return nil, err
}
c := http.Client{Timeout: time.Minute}
limiter.Wait(context.Backgroud())
resp, err := c.Do(request)
resp, err := do(request)
if err != nil {
return nil, err
}