Fix retry handling
This commit is contained in:
parent
63e4eb2a6a
commit
97ef6b1a3d
2 changed files with 15 additions and 11 deletions
|
|
@ -70,12 +70,14 @@ func (d *dumper) Dump(name string, v interface{}) {
|
|||
|
||||
// wait up to 1m for the vehicle to wakeup
|
||||
start := time.Now()
|
||||
for soc, err = v.SoC(); err != nil && errors.Is(err, api.ErrMustRetry); {
|
||||
if time.Since(start) > time.Minute {
|
||||
err = api.ErrTimeout
|
||||
} else {
|
||||
fmt.Fprint(w, ".")
|
||||
time.Sleep(3 * time.Second)
|
||||
for err = api.ErrMustRetry; err != nil && errors.Is(err, api.ErrMustRetry); {
|
||||
if soc, err = v.SoC(); err != nil {
|
||||
if time.Since(start) > time.Minute {
|
||||
err = api.ErrTimeout
|
||||
} else {
|
||||
fmt.Fprint(w, ".")
|
||||
time.Sleep(3 * time.Second)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,11 +80,13 @@ func main() {
|
|||
var err error
|
||||
|
||||
start := time.Now()
|
||||
for soc, err = v.SoC(); err != nil && matchesError(err, api.ErrMustRetry); {
|
||||
if time.Since(start) > time.Minute {
|
||||
err = api.ErrTimeout
|
||||
} else {
|
||||
time.Sleep(5 * time.Second)
|
||||
for err = api.ErrMustRetry; err != nil && matchesError(err, api.ErrMustRetry); {
|
||||
if soc, err = v.SoC(); err != nil {
|
||||
if time.Since(start) > time.Minute {
|
||||
err = api.ErrTimeout
|
||||
} else {
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue