public TimeSpan GetDontRunLongerThanValue() { var every = (float)runsLongerThanEvery.Value; var longerThan = IntervalUtils.GetDontRunLongerThanInterval(); return(TimeSpanUtils.GenerateTimeSpan(every, longerThan)); }
public static void SetTaskStartingTimer(Task task) { var dueTime = TimeSpanUtils.GetMillisecondsFromNow(task.Period.StartDate); Timer timer = null; timer = TimerUtils.CreateTimer(() => TaskActions.StartTaskThenDisposeTimer(timer, task), dueTime, Timeout.Infinite); var taskTimer = TimerUtils.AddTimer(timer, task.Name, "Task Starting Timer", dueTime, -1); }
public static void StartDelayForConsecutive(Task task) { var startConsecutivelyValue = (float)form.StartConsecutivelyDelay.Value; var delay = (long) TimeSpanUtils .GenerateTimeSpan(startConsecutivelyValue, IntervalUtils.GetInterval()) .TotalMilliseconds; Timer timer = null; TimerUtils.CreateTimer(() => TaskActions.RunTaskUpdateTaskDisposeTimer(timer, task), delay, Timeout.Infinite); var taskTimer = TimerUtils.AddTimer(timer, task.Name, "Consecutive Delayer Timer", delay, -1); }
public static TimeSpan GetTimeBetween(StartProperty prop) { float every; Interval interval; if (prop == StartProperty.Periodically) { every = (float)MainForm.Form.StartPeriodicallyEvery.Value; interval = IntervalUtils.GetInterval(); } else { every = (float)MainForm.Form.StartConsecutivelyDelay.Value; interval = IntervalUtils.GetInterval(); } return(TimeSpanUtils.GenerateTimeSpan(every, interval)); }
public static EmailInfo SetEmailInfo() { if (MainForm.Form.NotifyButton.Checked) { float every = (float)MainForm.Form.RunsLongerThanEvery.Value; var interval = GetSelectedRunsLongerThanInterval(); EmailInfo emailInfo = new EmailInfo { IsToBeNotified = true, EmailAddresses = GetTextBoxEmailsList(), NoLongerThan = TimeSpanUtils.GenerateTimeSpan(every, interval) }; return(emailInfo); } else { return(null); } }
private static void StartNotificationTimer(Task task) { if (task.EmailInfo == null) { return; } var taskStartingDate = task.Period.StartDate; var dontRunLongerThanValue = MainForm.Form.GetDontRunLongerThanValue(); bool tryToSend = false; System.Threading.Timer timer = null; timer = new System.Threading.Timer((e) => { if (TaskUtils.IsNull(task)) { TimerUtils.DisposeTimer(timer); return; } if (TimeSpanUtils .GetDifference(DateTime.Now, taskStartingDate) > dontRunLongerThanValue) { if (!tryToSend && TaskRunner.IsTaskRunning(task)) { tryToSend = true; EmailUtils.RedirectToSendEmail(task.Name, dontRunLongerThanValue); } TimerUtils.DisposeTimer(timer); } }, null, 0, 3000); var taskTimer = TimerUtils.AddTimer(timer, task.Name, "Notification Timer", 0, 3000); logger.Info($"{taskTimer} is added."); }
private static bool IsDateTimeSpanExceedingLimit(DateTime date) { var difference = TimeSpanUtils.GetDifference(date, DateTime.Now); return(IsTimeSpanExceedingLimit(difference)); }