Example #1
0
        private List <TaskInfo> GetPendingScheduledTasks()
        {
            DateTime startTime      = CurrentRequestData.Now;
            var      scheduledTasks =
                _taskSettingManager.GetInfo()
                .Where(task =>
                       task.Enabled && task.Status == TaskExecutionStatus.Pending &&
                       (task.LastCompleted < startTime.AddSeconds(-task.FrequencyInSeconds) ||
                        task.LastCompleted == null))
                .ToList();

            _taskSettingManager.StartTasks(scheduledTasks, startTime);
            return(scheduledTasks);
        }
Example #2
0
        public override HealthCheckResult PerformCheck()
        {
            var any = _taskSettingManager.GetInfo().Any(x => x.Type == typeof(PublishScheduledWebpagesTask) && x.Enabled);

            return(!any
                ? new HealthCheckResult
            {
                Messages = new List <string>
                {
                    "Publisher task is not set up."
                }
            }
                : HealthCheckResult.Success);
        }
Example #3
0
        public override HealthCheckResult PerformCheck()
        {
            var any = _taskSettingManager.GetInfo().Any(x => x.Type == typeof(SendQueuedMessagesTask) && x.Enabled);

            return(!any
                ? new HealthCheckResult
            {
                Messages = new List <string>
                {
                    "Email sending task is not set up."
                }
            }
                : HealthCheckResult.Success);
        }
Example #4
0
        private void ResetScheduledTasks()
        {
            var now = CurrentRequestData.Now;
            var hungScheduledTasks = _taskSettingManager.GetInfo()
                                     .Where(
                task => task.Enabled &&
                (task.Status == TaskExecutionStatus.AwaitingExecution ||
                 task.Status == TaskExecutionStatus.Executing || task.Status == TaskExecutionStatus.Failed) &&
                (task.LastStarted < now.AddMinutes(-15) || task.LastStarted == null)
                )
                                     .ToList();

            foreach (var task in hungScheduledTasks)
            {
                _taskSettingManager.Reset(task.Type, false);
            }
        }
Example #5
0
        public override HealthCheckResult PerformCheck()
        {
            var tasks = _taskSettingManager.GetInfo()
                        .ToList()
                        .Where(x => x.Enabled &&
                               (!x.LastCompleted.HasValue || x.LastCompleted.Value <= CurrentRequestData.Now.AddSeconds(-(x.FrequencyInSeconds + 120))));

            if (tasks.Any())
            {
                var messages = tasks.Select(task =>
                {
                    var lastComplete = task.LastCompleted;
                    return(lastComplete.HasValue
                        ? $"{task.Name} has not been ran since {lastComplete}"
                        : $"{task.Name} has never been run");
                }).ToList();
                return(new HealthCheckResult
                {
                    Messages = messages,
                    Status = HealthCheckStatus.Failure
                });
            }
            return(HealthCheckResult.Success);
        }
Example #6
0
 public List <TaskInfo> GetAllScheduledTasks()
 {
     return(_taskSettingManager.GetInfo().OrderBy(x => x.Name).ToList());
 }