func (s *StackDeployScheduler) StatusUpdate(driver scheduler.SchedulerDriver, status *mesos.TaskStatus) { Logger.Info("[StatusUpdate] %s", pretty.Status(status)) if status.GetState() == mesos.TaskState_TASK_FINISHED { driver.ReviveOffers() } for _, runner := range MesosTaskRunners { if runner.StatusUpdate(driver, status) { return } } Logger.Warn("Received status update that was not handled by any Mesos Task Runner: %s", pretty.Status(status)) }
func (sched *ExampleScheduler) StatusUpdate(driver sched.SchedulerDriver, status *mesos.TaskStatus) { log.Infoln("Status update: task", status.TaskId.GetValue(), " is in state ", status.State.Enum().String()) if status.GetState() == mesos.TaskState_TASK_FINISHED { sched.tasksFinished++ driver.ReviveOffers() // TODO(jdef) rate-limit this } if sched.tasksFinished >= sched.totalTasks { log.Infoln("Total tasks completed, stopping framework.") driver.Stop(false) } if status.GetState() == mesos.TaskState_TASK_LOST || status.GetState() == mesos.TaskState_TASK_KILLED || status.GetState() == mesos.TaskState_TASK_FAILED || status.GetState() == mesos.TaskState_TASK_ERROR { sched.tasksErrored++ } }