chore: use time.Tick (#17601)

This commit is contained in:
andig 2024-12-05 18:10:51 +01:00 • committed by GitHub
parent 56e5285050
commit a85fcc425b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 23 additions and 44 deletions

View file

@ -342,12 +342,11 @@ func (c *Easee) ProductUpdate(i json.RawMessage) {
c.stopTicker = make(chan struct{})
go func() {
ticker := time.NewTicker(5 * time.Minute)
for {
for tick := time.Tick(5 * time.Minute); ; {
select {
case <-c.stopTicker:
return
case <-ticker.C:
case <-tick:
c.requestLifetimeEnergyUpdate()
}
}

View file

@ -1082,12 +1082,11 @@ func (site *Site) Run(stopC chan struct{}, interval time.Duration) {
loadpointChan := make(chan updater)
go site.loopLoadpoints(loadpointChan)
ticker := time.NewTicker(interval)
site.update(<-loadpointChan) // start immediately
for {
for tick := time.Tick(interval); ; {
select {
case <-ticker.C:
case <-tick:
site.update(<-loadpointChan)
case lp := <-site.lpUpdateChan:
site.update(lp)

View file

@ -139,12 +139,10 @@ func (s *SEMP) Run() {
ads = append(ads, ad)
}
ticker := time.NewTicker(maxAge * time.Second / 2)
ANNOUNCE:
for {
for tick := time.Tick(maxAge * time.Second / 2); ; {
select {
case <-ticker.C:
case <-tick:
for _, ad := range ads {
if err := ad.Alive(); err != nil {
s.log.ERROR.Println(err)

View file

@ -83,8 +83,7 @@ func NewAmberFromConfig(other map[string]interface{}) (api.Tariff, error) {
func (t *Amber) run(done chan error) {
var once sync.Once
tick := time.NewTicker(time.Minute)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res []amber.PriceInfo
uri := fmt.Sprintf("%s&endDate=%s", t.uri, time.Now().AddDate(0, 0, 2).Format("2006-01-02"))

View file

@ -62,8 +62,7 @@ func (t *Awattar) run(done chan error) {
client := request.NewHelper(t.log)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res awattar.Prices
// Awattar publishes prices for next day around 13:00 CET/CEST, so up to 35h of price data are available

View file

@ -107,8 +107,7 @@ func (t *EdfTempo) RefreshToken(_ *oauth2.Token) (*oauth2.Token, error) {
func (t *EdfTempo) run(done chan error) {
var once sync.Once
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res struct {
Data struct {
Values []struct {

View file

@ -82,8 +82,7 @@ func (t *ElectricityMaps) run(done chan error) {
uri := fmt.Sprintf("%s/carbon-intensity/forecast?zone=%s", t.uri, t.zone)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res CarbonIntensity
if err := backoff.Retry(func() error {

View file

@ -65,8 +65,7 @@ func (t *Elering) run(done chan error) {
var once sync.Once
client := request.NewHelper(t.log)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res elering.NpsPrice
ts := time.Now().Truncate(time.Hour)

View file

@ -64,8 +64,7 @@ func (t *Energinet) run(done chan error) {
var once sync.Once
client := request.NewHelper(t.log)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res energinet.Prices
ts := time.Now().Truncate(time.Hour)

View file

@ -90,8 +90,7 @@ func (t *Entsoe) run(done chan error) {
var once sync.Once
// Data updated by ESO every half hour, but we only need data every hour to stay current.
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var tr entsoe.PublicationMarketDocument
if err := backoff.Retry(func() error {

View file

@ -42,8 +42,7 @@ func (t *GroupeE) run(done chan error) {
client := request.NewHelper(t.log)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res []struct {
StartTimestamp time.Time `json:"start_timestamp"`
EndTimestamp time.Time `json:"end_timestamp"`

View file

@ -92,8 +92,7 @@ func (t *GrünStromIndex) run(done chan error) {
uri := fmt.Sprintf("https://api.corrently.io/v2.0/gsi/prediction?zip=%s", t.zip)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res gsiForecast
err := backoff.Retry(func() error {

View file

@ -73,8 +73,7 @@ func (t *Ngeso) run(done chan error) {
}
// Data updated by ESO every half hour, but we only need data every hour to stay current.
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
res, err := backoff.RetryWithData(func() (ngeso.CarbonForecastResponse, error) {
res, err := tReq.DoRequest(client)
return res, backoffPermanentError(err)

View file

@ -108,8 +108,7 @@ func (t *Octopus) run(done chan error) {
}
// TODO tick every 15 minutes if GraphQL is available to poll for Intelligent slots.
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res octoRest.UnitRates
if err := backoff.Retry(func() error {

View file

@ -176,8 +176,7 @@ func (t *Ostrom) RefreshToken(_ *oauth2.Token) (*oauth2.Token, error) {
func (t *Ostrom) runStatic(done chan error) {
var once sync.Once
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
price, err := t.getFixedPrice()
if err != nil {
once.Do(func() { done <- err })
@ -205,8 +204,7 @@ func (t *Ostrom) runStatic(done chan error) {
func (t *Ostrom) run(done chan error) {
var once sync.Once
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res ostrom.Prices
start := now.BeginningOfDay()

View file

@ -75,8 +75,7 @@ func NewPunFromConfig(other map[string]interface{}) (api.Tariff, error) {
func (t *Pun) run(done chan error) {
var once sync.Once
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var today api.Rates
if err := backoff.Retry(func() error {
var err error

View file

@ -54,8 +54,7 @@ func (t *SmartEnergy) run(done chan error) {
var once sync.Once
client := request.NewHelper(t.log)
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res smartenergy.Prices
if err := backoff.Retry(func() error {

View file

@ -91,8 +91,7 @@ func NewConfigurableFromConfig(ctx context.Context, other map[string]interface{}
func (t *Tariff) run(forecastG func() (string, error), done chan error) {
var once sync.Once
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var data api.Rates
if err := backoff.Retry(func() error {
s, err := forecastG()

View file

@ -81,8 +81,7 @@ func (t *Tibber) run(done chan error) {
"id": graphql.ID(t.homeID),
}
tick := time.NewTicker(time.Hour)
for ; true; <-tick.C {
for tick := time.Tick(time.Hour); ; <-tick {
var res struct {
Viewer struct {
Home struct {