private void Ready() { ColorConsole.WriteLineGreen("Commander's current state is Ready."); Receive <ProcessJobMessage>(job => { ColorConsole.WriteLineWhite($"Commander has received Task {job.ID}.{job.Description} for processing."); _currentJob = job; // ask the coordinator for job _coordinator.Tell(new CanAcceptJobMessage(job.Description, job.ID)); // move to next state BecomeAsking(); }); Receive <JobCompletedMessage>(job => { // send response to parent _currentJob.Client.Tell(job); _logger.Debug($"Task {job.ID} is completed by commander and {Sender.Path.Name}."); }); Receive <JobFailedMessage>(job => { // send response to parent _currentJob.Client.Tell(job); _logger.Debug("Commander has received JobFailedMessage from {0} for Task ID: {1}", Sender.Path.Name, job.ID); ColorConsole.WriteLineGreen($"Task {job.ID} is failed."); }); }
public JobPoolControllerActor(IActorRef commanderActor) { _commander = commanderActor; Receive <ProcessFileMessage>(msg => InitializeJobs(msg.FileName)); Receive <ProcessJob>(job => HandleProcessJob()); Receive <JobValidationSucceedMessage>(msg => { _commander.Tell(new CanAcceptJobMessage(_currentJobMsg.Description, _currentJobMsg.ID)); }); Receive <JobValidationFailedMessage>(msg => { ColorConsole.WriteLineRed("Invalid Task : {0} {1}", _currentJobMsg.ID, _currentJobMsg.Description); }); Receive <AbleToAcceptJobMessage>(job => { ColorConsole.WriteLineGreen("Commander {0} is able to accept job {1}. {2}", _commander.Path.Name, job.ID, job.Description); _commander.Tell(new BeginJobMessage(job.Description, job.ID)); }); Receive <UnableToAcceptJobMessage>(job => { ColorConsole.WriteLineGreen("Commander {0} is unable to accept job {1}. {2}", _commander.Path.Name, job.ID, job.Description); }); Receive <JobCompletedMessage>(job => HandleJobCompleted(job)); Receive <JobFailedMessage>(job => HandleJobFailed(job)); Receive <UpdateJobStatastics>(message => HandleUpdateJobStatastics()); }
private void Waiting() { _logger.Debug("Cordinator {0}'s current state is Waiting", Self.Path.Name); ColorConsole.WriteLineYellow("Coordinator {0} state is - Waiting.", Self.Path.Name); // Received CanAcceptJobMessage from coordinator Receive <CanAcceptJobMessage>(job => { _logger.Debug("Cordinator {0} received CanAcceptJobMessage while in waiting state from {1} for Task ID: {2}", Self.Path.Name, Sender.Path.Name, job.ID); Sender.Tell(new AbleToAcceptJobMessage(job.Description, job.ID)); }); // Received BeginJobMessage from coordinator Receive <JobStartedMessage>(job => { _logger.Debug("Cordinator {0} received BeginJobMessage from {1} for Task ID: {2}", Self.Path.Name, Sender.Path.Name, job.ID); ColorConsole.WriteLineGreen("Task {0} is processing by coordinator {1}.", job.ID, Self.Path.Name); // move to next state first BecomeWorking(); // ask the worker for job _taskWorker.Tell(job); }); }
private void StopPlayingMovie() { string temp = _currentlyWatching; _currentlyWatching = null; ColorConsole.WriteLineGreen($"User:{_userId} has stopped watching {temp}."); Become(Stopped); }
private void StartPlayingMovie(string title) { _currentlyWatching = title; ColorConsole.WriteLineGreen($"User:{_userId} is watching {title}."); Context .ActorSelection("/user/Playback/PlaybackStatistics/MoviePlayCounter") .Tell(new IncrementPlayCountMessage(title)); Become(Playing); }
public PlaybackActor() { _userCoordinator = Context.ActorOf(Props.Create <UserCoordinatorActor>(), "UserCoordinator"); _statistics = Context.ActorOf(Props.Create <PlaybackStatisticsActor>(), "PlaybackStatistics"); Receive <PlayMovieMessage>(message => { ColorConsole.WriteLineGreen( $"PlaybackActor received PlayMovieMessage '{message.MovieTitle}' for user {message.UserId}"); _userCoordinator.Tell(message); }); }
public JobPoolControllerActor(IActorRef commanderActor) { _commander = commanderActor; Receive <ProcessFileMessage>(msg => InitializeJobs(msg.FileName)); Receive <UnableToAcceptJobMessage>(job => { ColorConsole.WriteLineRed($"Commander {Sender.Path} is unable to perform Task : {job.Description}"); if (!_jobsToProcessed.ContainsKey(job.ID)) { if (_taskList[job.ID].Status == JobStatus.NotStarted) { _jobsToProcessed.Add(job.ID, new ProcessJobMessage(job.Description, job.ID, Self)); } } }); Receive <JobStartedMessage>(job => { ColorConsole.WriteLineGreen($"Task {job.ID}. {job.Description} has started by {Sender.Path} at {job.ProcessedTime}"); var task = _taskList[job.ID]; task.StartTime = job.ProcessedTime; task.Status = JobStatus.Started; if (null == _stopWatch) { _stopWatch = new Stopwatch(); _stopWatch.Start(); } // update UI }); Receive <JobCompletedMessage>(job => { ColorConsole.WriteLineYellow($"Task {job.ID}. {job.Description} has completed succesfully at {job.ProcessedTime} by {Sender.Path} in {job.Duration} ms."); var task = _taskList[job.ID]; task.EndTime = job.ProcessedTime; task.Duration = job.Duration; task.Status = JobStatus.Completed; // update UI }); Receive <JobFailedMessage>(job => { ColorConsole.WriteLineRed($"Commander {Sender.Path} is unable to perform Task : {job.Description} because {job.Status.ToString()}"); _taskList[job.ID].Status = job.Status; // update UI }); Receive <ProcessUnfinishedJobs>(msg => HandleProcessUnFinishedJobs(msg)); }
private void Waiting() { ColorConsole.WriteLineYellow("Coordinator {0} state is - Waiting.", Self.Path.Name); // Received CanAcceptJobMessage from coordinator Receive <CanAcceptJobMessage>(job => { Sender.Tell(new AbleToAcceptJobMessage(job.Description, job.ID)); }); // Received BeginJobMessage from coordinator Receive <JobStartedMessage>(job => { ColorConsole.WriteLineGreen("Task {0} is processing by coordinator {1}.", job.ID, Self.Path.Name); // move to next state first BecomeWorking(); _parent = Sender; // ask the worker for job _taskWorker.Tell(job); }); }
private void Ready() { ColorConsole.WriteLineGreen("Commander's current state is Ready."); Receive <CanAcceptJobMessage>(job => { // ask the coordinator for job _coordinator.Tell(job); _currentJobID = job.ID; _currentJobDescription = job.Description; // move to next state BecomeAsking(); }); Receive <JobCompletedMessage>(job => { // send response to parent Context.Parent.Tell(job); // move to next state BecomeReady(); }); Receive <JobFailedMessage>(job => { // send response to parent Context.Parent.Tell(job); // move to next state BecomeReady(); }); // recived ProcessStashedJobs request from scheduler // Receive<ProcessStashedJobs>(job => HandleUnstashJobs()); }
protected override void PreStart() { ColorConsole.WriteLineGreen(string.Format("{0} PreStart", this.GetType().Name)); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen("UserActor {0} PostRestart because exception of type '{1}' was thrown: ", UserID, reason.GetType()); base.PostRestart(reason); }
protected override void PostStop() => ColorConsole.WriteLineGreen("PlaybackActor PostStop");
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen("UserActor PostRestart because " + reason); base.PostRestart(reason); }
protected override void PostStop() { ColorConsole.WriteLineGreen("UserActor PostStop"); }
private void StopPlayingMovie() { ColorConsole.WriteLineGreen("User had stopped watching the movie"); Become(Stopped); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen(string.Concat("PlaybackActor PostRestart because: ", reason)); base.PostRestart(reason); }
protected override void PreRestart(Exception reason, object message) { ColorConsole.WriteLineGreen(string.Concat("PlaybackActor PreRestart because: ", reason)); base.PreRestart(reason, message); }
protected override void PostStop() { ColorConsole.WriteLineGreen(string.Format("{0} PostStop", this.GetType().Name)); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen(string.Format("{0} PostRestart because {1}", this.GetType().Name, reason)); base.PostRestart(reason); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen($"PlaybackActor PostRestart because: {reason}"); base.PostRestart(reason); }
protected override void PreRestart(Exception reason, object message) { ColorConsole.WriteLineGreen($"PlaybackActor PreRestart because: {reason}"); base.PreRestart(reason, message); }
private void HandleJobCompleted(JobCompletedMessage job) { _succeedJobs.Add(job); ColorConsole.WriteLineGreen("Task {0}. {1} completed succesfully in {2} ms", job.ID, job.Description, job.Duration); Self.Tell(new UpdateJobStatastics()); }
private void ProcessRestartingMessage(Restarting msg) { ColorConsole.WriteLineGreen("ChildActor Restarting"); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen("Playback PostRestart " + reason); base.PostRestart(reason); }
protected override void PreStart() { ColorConsole.WriteLineGreen("UserActor PreStart"); }
protected override void PostStop() { ColorConsole.WriteLineGreen("MoviePlayCounterActor PostStop"); }
protected override void PreRestart(Exception reason, object message) { ColorConsole.WriteLineGreen("UserActor PreRestart because " + reason); base.PreRestart(reason, message); }
protected override void PostRestart(Exception reason) { ColorConsole.WriteLineGreen("MoviePlayCounterActor PostRestart because exception of type '{0}' was thrown: ", reason.GetType()); base.PostRestart(reason); }
protected override void PreStart() { ColorConsole.WriteLineGreen("MoviePlayCounterActor PreStart"); }
protected override void PreStart() => ColorConsole.WriteLineGreen("PlaybackActor PreStart");