private void ProcessSpeculatorEvent(SpeculatorEvent @event) { lock (this) { switch (@event.GetType()) { case Speculator.EventType.AttemptStatusUpdate: { StatusUpdate(@event.GetReportedStatus(), @event.GetTimestamp()); break; } case Speculator.EventType.TaskContainerNeedUpdate: { AtomicInteger need = ContainerNeed(@event.GetTaskID()); need.AddAndGet(@event.ContainersNeededChange()); break; } case Speculator.EventType.AttemptStart: { Log.Info("ATTEMPT_START " + @event.GetTaskID()); estimator.EnrollAttempt(@event.GetReportedStatus(), @event.GetTimestamp()); break; } case Speculator.EventType.JobCreate: { Log.Info("JOB_CREATE " + @event.GetJobID()); estimator.Contextualize(GetConfig(), context); break; } } } }
public virtual void Handle(SpeculatorEvent @event) { ProcessSpeculatorEvent(@event); }