private void HandleIncrementMessage(IncrementPlayCountMessage message) { var key = message.MovieTitle; if (this.moviePlayCounts.ContainsKey(key)) { this.moviePlayCounts[key]++; } else { this.moviePlayCounts.Add(key, 1); } // SIMULATED BUGS if (moviePlayCounts[message.MovieTitle] > 3) { throw new SimulatedCorruptStateException(); // strategy is to RESTART this child } if (message.MovieTitle == "Partial Recoil") { throw new SimulatedTerribleMovieException(); // strategy is to RESUME this child, although... // it will resume only on the next message, which means that the following Console.Write will not be executed // but its counter will remain the same because this actor is not restarted } ColorConsole.WriteLineMagenta( string.Format("MoviePlayCounterActor '{0}' has been watched {1} times", key, moviePlayCounts[key])); }
private void HandleIncrementMessage(IncrementPlayCountMessage message) { if (moviePlayCounts.ContainsKey(message.MovieTitle)) { moviePlayCounts[message.MovieTitle]++; } else { moviePlayCounts[message.MovieTitle] = 1; } //Simulate some bugs if (moviePlayCounts[message.MovieTitle] > 3) { throw new SimulatedCorruptStateException(); } if (message.MovieTitle.Contains("bad")) { throw new SimulatedTerribleMovieException(); } ColorConsole.WriteLineMagenta("MoviePlayCounterActor '{0}' has been watched {1} times", message.MovieTitle, moviePlayCounts[message.MovieTitle]); }
/// <summary> /// Handle the message "JobFailedMessage" received from Worker /// </summary> /// <param name="job">message</param> private void HandleJobFailed(JobFailedMessage job) { ColorConsole.WriteLineMagenta("Task {0} of Coordinator {1} failed.", job.ID, Self.Path.Name); // send response to parent - commander _parent.Tell(job); // move to next state BecomeWaiting(); }
/// <summary> /// Handle the message "JobFailedMessage" received from Worker /// </summary> /// <param name="job">message</param> private void HandleJobFailed(JobFailedMessage job) { ColorConsole.WriteLineMagenta("Task {0} of Coordinator {1} failed.", job.ID, Self.Path.Name); // send response to parent - commander _parent.Tell(job); // move to next state BecomeWaiting(); if (job.Status == JobStatus.Timeout) { //Context.Stop(_taskWorker); var shutdown = _taskWorker.GracefulStop(TimeSpan.FromMilliseconds(5)); InitializeWorker("worker_" + job.ID.ToString() + "_" + job.TimeOut.ToString()); } }
private void HandleIncrementMessage(IncrementPlayCountMessage message) { if (_moviePlayCounts.ContainsKey(message.MovieTitle)) { _moviePlayCounts[message.MovieTitle]++; } else { _moviePlayCounts.Add(message.MovieTitle, 1); } if (_moviePlayCounts[message.MovieTitle] > 3) { throw new SimulatedCorruptStateException(); } if (message.MovieTitle == "ALPER") { throw new SimulatedTerribleMovieException(); } ColorConsole.WriteLineMagenta(string.Format("MoviePlayCounterActor '{0}' has been watched {1} times", message.MovieTitle, _moviePlayCounts[message.MovieTitle])); }
private void HandleUpdateJobStatastics() { ColorConsole.WriteLineMagenta("Total # of jobs to be processed are {0}", _jobsToProcessed.Count); ColorConsole.WriteLineMagenta("Total # of succeed jobs are {0}", _succeedJobs.Count); ColorConsole.WriteLineMagenta("Total # of failed jobs are {0}", _failedJobs.Count); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineMagenta("MoviePlayCounterActor PostRestart because: " + reason); base.PostRestart(reason); }
protected override void PreRestart(Exception reason, object message) { ColorConsole.WriteLineMagenta("MoviePlayCounterActor PreRestart because: " + reason); base.PreRestart(reason, message); }
protected override void PostStop() { ColorConsole.WriteLineMagenta("MoviePlayCounterActor PostStop"); }
protected override void PreStart() { ColorConsole.WriteLineMagenta("MoviePlayCounterActor PreStart"); }