chore: don't retry permanent errors
This commit is contained in:
parent
ab412b41b4
commit
c9751984b7
12 changed files with 18 additions and 40 deletions
|
|
@ -90,7 +90,7 @@ func (t *Amber) run(done chan error) {
|
|||
uri := fmt.Sprintf("%s&endDate=%s", t.uri,
|
||||
time.Now().AddDate(0, 0, 2).Format("2006-01-02"))
|
||||
if err := backoff.Retry(func() error {
|
||||
return t.GetJSON(uri, &res)
|
||||
return backoffPermanentError(t.GetJSON(uri, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ func (t *Awattar) run(done chan error) {
|
|||
var res awattar.Prices
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
return client.GetJSON(t.uri, &res)
|
||||
return backoffPermanentError(client.GetJSON(t.uri, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ func (t *ElectricityMaps) run(done chan error) {
|
|||
var res CarbonIntensity
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
return t.GetJSON(uri, &res)
|
||||
return backoffPermanentError(t.GetJSON(uri, &res))
|
||||
}, bo); err != nil {
|
||||
if res.Error != "" {
|
||||
err = errors.New(res.Error)
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ func (t *Elering) run(done chan error) {
|
|||
url.QueryEscape(ts.Add(48*time.Hour).Format(time.RFC3339)))
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
return client.GetJSON(uri, &res)
|
||||
return backoffPermanentError(client.GetJSON(uri, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ func (t *Energinet) run(done chan error) {
|
|||
t.region)
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
return client.GetJSON(uri, &res)
|
||||
return backoffPermanentError(client.GetJSON(uri, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"bytes"
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"net/http"
|
||||
"slices"
|
||||
"strings"
|
||||
"sync"
|
||||
|
|
@ -96,14 +95,8 @@ func (t *Entsoe) run(done chan error) {
|
|||
if err := backoff.Retry(func() error {
|
||||
// Request the next 24 hours of data.
|
||||
data, err := t.DoBody(entsoe.DayAheadPricesRequest(t.domain, time.Hour*24))
|
||||
|
||||
var se request.StatusError
|
||||
if errors.As(err, &se) {
|
||||
if se.StatusCode() == http.StatusBadRequest {
|
||||
return backoff.Permanent(se)
|
||||
}
|
||||
|
||||
return se
|
||||
if err != nil {
|
||||
return backoffPermanentError(err)
|
||||
}
|
||||
|
||||
var doc entsoe.Document
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
package tariff
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"slices"
|
||||
"sync"
|
||||
"time"
|
||||
|
|
@ -56,12 +54,7 @@ func (t *GroupeE) run(done chan error) {
|
|||
uri := fmt.Sprintf("https://api.tariffs.groupe-e.ch/v1/tariffs?start_timestamp=%s&end_timestamp=%s", start.Format(time.RFC3339), start.Add(48*time.Hour).Format(time.RFC3339))
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
err := client.GetJSON(uri, &res)
|
||||
var se request.StatusError
|
||||
if errors.As(err, &se) && se.HasStatus(http.StatusBadRequest) {
|
||||
return backoff.Permanent(se)
|
||||
}
|
||||
return err
|
||||
return backoffPermanentError(client.GetJSON(uri, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ func (t *GrünStromIndex) run(done chan error) {
|
|||
var res gsiForecast
|
||||
|
||||
err := backoff.Retry(func() error {
|
||||
return client.GetJSON(uri, &res)
|
||||
return backoffPermanentError(client.GetJSON(uri, &res))
|
||||
}, bo)
|
||||
|
||||
if err == nil && res.Err {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package tariff
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"slices"
|
||||
"sync"
|
||||
"time"
|
||||
|
|
@ -79,11 +78,7 @@ func (t *Ngeso) run(done chan error) {
|
|||
for ; true; <-tick.C {
|
||||
res, err := backoff.RetryWithData(func() (ngeso.CarbonForecastResponse, error) {
|
||||
res, err := tReq.DoRequest(client)
|
||||
var se request.StatusError
|
||||
if errors.As(err, &se) && se.StatusCode() == http.StatusBadRequest {
|
||||
return nil, backoff.Permanent(se)
|
||||
}
|
||||
return res, err
|
||||
return res, backoffPermanentError(err)
|
||||
}, bo)
|
||||
if err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ func (t *Octopus) run(done chan error) {
|
|||
var res octopus.UnitRates
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
return client.GetJSON(t.uri, &res)
|
||||
return backoffPermanentError(client.GetJSON(t.uri, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
|
|
@ -97,21 +97,18 @@ func (t *Pun) run(done chan error) {
|
|||
continue
|
||||
}
|
||||
|
||||
var tomorrow api.Rates
|
||||
if err := backoff.Retry(func() error {
|
||||
var err error
|
||||
|
||||
tomorrow, err = t.getData(time.Now().AddDate(0, 0, 1))
|
||||
|
||||
return err
|
||||
}, bo); err != nil {
|
||||
res, err := backoff.RetryWithData(func() (api.Rates, error) {
|
||||
res, err := t.getData(time.Now().AddDate(0, 0, 1))
|
||||
return res, backoffPermanentError(err)
|
||||
}, bo)
|
||||
if err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
t.log.ERROR.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
// merge today and tomorrow data
|
||||
data := append(today, tomorrow...)
|
||||
data := append(today, res...)
|
||||
t.data.Set(data)
|
||||
|
||||
once.Do(func() { close(done) })
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ func (t *SmartEnergy) run(done chan error) {
|
|||
var res smartenergy.Prices
|
||||
|
||||
if err := backoff.Retry(func() error {
|
||||
return client.GetJSON(smartenergy.URI, &res)
|
||||
return backoffPermanentError(client.GetJSON(smartenergy.URI, &res))
|
||||
}, bo); err != nil {
|
||||
once.Do(func() { done <- err })
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue