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);
            }
        }
Example #2
0
 private void ReceiveWorkerIntiationCmd(WorkerIntiationCmd cmd)
 {
     _lastRun = cmd.ScheduleCommand.LastRun;
     _cmd     = cmd.ScheduleCommand;
     Become(Intiated);
 }
Example #3
0
 public SaveWorkItemToDiskCmd(ScheduleWorkCmd scheduleMessage)
 {
     ScheduleMessage = scheduleMessage;
 }
Example #4
0
 private void IntiateWorker(WorkerIntiationCmd cmd)
 {
     _lastRun = cmd.ScheduleCommand.LastRun;
     _cmd     = cmd.ScheduleCommand;
 }