예제 #1
0
        public void AddTask(Execution execution)
        {
            if (execution.ScheduleTime == null)
            {
                ExecutionsQueue.Enqueue(execution);
            }
            else
            {
                ScheduledExecution.Add(execution);
            }

            LogMessages.Add(new LogMessage("Added " + (execution.ScheduleTime == null ? "" : "Scheduled ") + " task  " +
                                           execution.Id + " with " + execution.ExecutionsScriptses.Count +
                                           " sub tasks"));
        }
예제 #2
0
        private void ExecuteScheduledOrRegularTask()
        {
            Execution execution = ScheduledExecution.FirstOrDefault(e => e.ScheduleTime <= DateTime.Now);

            if (execution != null)
            {
                LogMessages.Add(new LogMessage("Start to execute scheduled task"));

                ExecuteTask(execution);
            }
            else if (ExecutionsQueue.Count > 0)
            {
                LogMessages.Add(new LogMessage("Start to execute regular task"));
                execution = ExecutionsQueue.Dequeue();
                ExecuteTask(execution);
            }
        }