private void ReceiveScheduleWorkCmd(ScheduleWorkCmd cmd) { try { var referenceGuid = cmd.Id; var actor = Context.ActorOf <WorkPerformerActor>(); actor.Tell(new WorkerIntiationCmd(cmd)); var cancelObject = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(TimeSpan.Zero, TimeSpan.FromMinutes(cmd.Interval), actor, new PerformWorkCmd(), Self); var description = new WorkDescription() { Actor = actor, CancelObject = cancelObject }; if (cmd.SaveToDisk) { StaticActors.SaveToDiskActor .Tell(new SaveWorkItemToDiskCmd(cmd)); } _scheduledWork.Add(referenceGuid, description); } catch (Exception e) { Console.WriteLine("Error: {0}", e.Message); } }
private void ReceiveWorkerIntiationCmd(WorkerIntiationCmd cmd) { _lastRun = cmd.ScheduleCommand.LastRun; _cmd = cmd.ScheduleCommand; Become(Intiated); }
public SaveWorkItemToDiskCmd(ScheduleWorkCmd scheduleMessage) { ScheduleMessage = scheduleMessage; }
private void IntiateWorker(WorkerIntiationCmd cmd) { _lastRun = cmd.ScheduleCommand.LastRun; _cmd = cmd.ScheduleCommand; }