Worker: avoid prematurely exiting 'awake' state

This commit is contained in:
Sybren A. Stüvel 2022-02-22 19:01:01 +01:00
parent 5c3a5124f3
commit e948c5d936

View File

@ -49,6 +49,7 @@ func (w *Worker) gotoStateAwake(ctx context.Context) {
// runStateAwake fetches a task and executes it, in an endless loop. // runStateAwake fetches a task and executes it, in an endless loop.
func (w *Worker) runStateAwake(ctx context.Context) { func (w *Worker) runStateAwake(ctx context.Context) {
defer w.doneWg.Done() defer w.doneWg.Done()
defer log.Debug().Msg("stopping state 'awake'")
for { for {
task := w.fetchTask(ctx) task := w.fetchTask(ctx)
@ -91,7 +92,8 @@ func (w *Worker) fetchTask(ctx context.Context) *api.AssignedTask {
resp, err := w.client.ScheduleTaskWithResponse(ctx) resp, err := w.client.ScheduleTaskWithResponse(ctx)
if err != nil { if err != nil {
log.Error().Err(err).Msg("error obtaining task") log.Error().Err(err).Msg("error obtaining task")
return nil wait = durationFetchFailed
continue
} }
switch { switch {
case resp.JSON200 != nil: case resp.JSON200 != nil: