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); }
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); }
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); }
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); } }
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); }
public List <TaskInfo> GetAllScheduledTasks() { return(_taskSettingManager.GetInfo().OrderBy(x => x.Name).ToList()); }