Exemplo n.º 1
0
        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]));
        }
Exemplo n.º 2
0
        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]);
        }
Exemplo n.º 3
0
        /// <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();
        }
Exemplo n.º 4
0
        /// <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());
            }
        }
Exemplo n.º 5
0
        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]));
        }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
 protected override void PostRestart(Exception reason)
 {
     ColorConsole.WriteLineMagenta("MoviePlayCounterActor PostRestart because: " + reason);
     base.PostRestart(reason);
 }
Exemplo n.º 8
0
        protected override void PreRestart(Exception reason, object message)
        {
            ColorConsole.WriteLineMagenta("MoviePlayCounterActor PreRestart because: " + reason);

            base.PreRestart(reason, message);
        }
Exemplo n.º 9
0
 protected override void PostStop()
 {
     ColorConsole.WriteLineMagenta("MoviePlayCounterActor PostStop");
 }
Exemplo n.º 10
0
 protected override void PreStart()
 {
     ColorConsole.WriteLineMagenta("MoviePlayCounterActor PreStart");
 }