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 package broker
import ( import (
"context"
"local/truckstop/config" "local/truckstop/config"
"net/http"
"strings"
"golang.org/x/time/rate" "golang.org/x/time/rate"
) )
@ -15,3 +18,11 @@ var limiter = rate.NewLimiter(rate.Limit(1.0/20.0), 1)
type Broker interface { type Broker interface {
Search([]config.State) ([]Job, error) 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 ( import (
"bytes" "bytes"
"context"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
@ -110,8 +109,7 @@ func (ntg NTGVision) refreshAuth() error {
return err return err
} }
setNTGHeaders(request) setNTGHeaders(request)
authlimiter.Wait(context.Background()) resp, err := do(request)
resp, err := http.DefaultClient.Do(request)
if err != nil { if err != nil {
return err return err
} }
@ -140,9 +138,7 @@ func (ntg NTGVision) _search(states []config.State) (io.ReadCloser, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
c := http.Client{Timeout: time.Minute} resp, err := do(request)
limiter.Wait(context.Backgroud())
resp, err := c.Do(request)
if err != nil { if err != nil {
return nil, err return nil, err
} }