Example #1
0
func (r *Runner) finishTask(task kit.Task) {
	if task.IsComplete() {
		if !task.IsSuccess() {
			r.registry.Logger().Debugf("TaskRunner: Task %v failed after %v tries: %v", task.GetStrId(), task.GetTryCount(), task.GetError())
		} else {
			secs := task.GetFinishedAt().Sub(*task.GetStartedAt()).Seconds()
			r.registry.Logger().Debugf("TaskRunner: Task %v completed successfully (%v secs)", task.GetStrId(), secs)
		}
	} else {
		r.Registry().Logger().Debugf("TaskRunner: Task %v(%v) failed, will retry: %v", task.GetStrId(), task.GetName(), task.GetError())
	}

	if err := r.backend.Update(task); err != nil {
		r.registry.Logger().Errorf("TaskRunner: Could not update task: %v", err)
	}

	delete(r.activeTasks, task.GetStrId())

	// Call onComplete handler if specified.
	spec := r.tasks[task.GetName()]
	onComplete := spec.GetOnCompleteHandler()
	if onComplete != nil {
		go onComplete(r.registry, task)
	}
}