public static ScheduledTaskData GetTask() { SchedulingManager manager = SchedulingManager.GetManager(); ScheduledTaskData task = manager.GetTaskData() .Where(i => i.Key == taskKey) .SingleOrDefault(); return(task); }
/// <summary> /// get next execution time /// </summary> /// <param name="task">task for which to compute next execution time</param> /// <param name="referencetime">time to use as reference base (optional)</param> /// <returns>next execution time or null if no next execution is scheduled</returns> public static DateTime?NextExecutionTime(this ScheduledTaskData task, DateTime?referencetime = null) { if (!task.Interval.HasValue) { return(null); } referencetime ??= DateTime.Now; return(ExecutionTime(task, referencetime.Value + task.Interval.Value)); }
/// <inheritdoc /> public Task <long> Create(ScheduledTaskData data) { ScheduledDays days = data.Days; if (days == ScheduledDays.None) { days = ScheduledDays.All; } DateTime?nextexecution = data.FirstExecutionTime(); return(insert.ExecuteAsync(data.Name, data.WorkableType, data.WorkableName, data.WorkableRevision, nextexecution, days, data.Interval)); }
static DateTime?ExecutionTime(this ScheduledTaskData task, DateTime time) { ScheduledDays dayfilter = task.Days; if (dayfilter == ScheduledDays.None) { dayfilter = ScheduledDays.All; } while ((time.DayOfWeek.ToScheduledDays() & dayfilter) == ScheduledDays.None) { time += TimeSpan.FromDays(1.0); } return(time); }
public async Task <ScheduledTask> CreateScript(ScheduledTaskData task) { logger.LogInformation($"Creating scheduled task {task.Name}"); return(await scheduledtaskservice.GetById(await scheduledtaskservice.Create(task))); }
/// <summary> /// get next execution time /// </summary> /// <param name="task">task for which to compute next execution time</param> /// <returns>next execution time or null if no next execution is scheduled</returns> public static DateTime?FirstExecutionTime(this ScheduledTaskData task) { return(ExecutionTime(task, DateTime.Now)); }