Merge pull request #181 from safing/fix/canceled-tasks

Stop logging an error for canceled tasks and workers
This commit is contained in:
Daniel 2022-08-24 13:39:52 +02:00 committed by GitHub
commit f5420b71eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 4 deletions

View file

@ -3,6 +3,7 @@ package modules
import ( import (
"container/list" "container/list"
"context" "context"
"errors"
"fmt" "fmt"
"sync" "sync"
"sync/atomic" "sync/atomic"
@ -382,7 +383,12 @@ func (t *Task) executeWithLocking() {
// run // run
err := t.taskFn(t.ctx, t) err := t.taskFn(t.ctx, t)
if err != nil { switch {
case err == nil:
return
case errors.Is(err, context.Canceled):
log.Debugf("%s: task %s was canceled: %s", t.module.Name, t.name, err)
default:
log.Errorf("%s: task %s failed: %s", t.module.Name, t.name, err) log.Errorf("%s: task %s failed: %s", t.module.Name, t.name, err)
} }
} }

View file

@ -25,8 +25,13 @@ var (
func (m *Module) StartWorker(name string, fn func(context.Context) error) { func (m *Module) StartWorker(name string, fn func(context.Context) error) {
go func() { go func() {
err := m.RunWorker(name, fn) err := m.RunWorker(name, fn)
if err != nil { switch {
log.Warningf("%s: worker %s failed: %s", m.Name, name, err) case err == nil:
return
case errors.Is(err, context.Canceled):
log.Debugf("%s: worker %s was canceled: %s", m.Name, name, err)
default:
log.Errorf("%s: worker %s failed: %s", m.Name, name, err)
} }
}() }()
} }
@ -87,7 +92,11 @@ func (m *Module) runServiceWorker(name string, backoffDuration time.Duration, fn
lastFail = time.Now() lastFail = time.Now()
// log error // log error
sleepFor := time.Duration(failCnt) * backoffDuration sleepFor := time.Duration(failCnt) * backoffDuration
log.Errorf("%s: service-worker %s failed (%d): %s - restarting in %s", m.Name, name, failCnt, err, sleepFor) if errors.Is(err, context.Canceled) {
log.Debugf("%s: service-worker %s was canceled (%d): %s - restarting in %s", m.Name, name, failCnt, err, sleepFor)
} else {
log.Errorf("%s: service-worker %s failed (%d): %s - restarting in %s", m.Name, name, failCnt, err, sleepFor)
}
select { select {
case <-time.After(sleepFor): case <-time.After(sleepFor):
case <-m.Ctx.Done(): case <-m.Ctx.Done():