Esempio n. 1
0
        /// <summary>
        /// Is task already running?
        /// </summary>
        /// <param name="scheduleTask">Schedule task</param>
        /// <returns>Result</returns>
        protected virtual bool IsTaskAlreadyRunning(ScheduledTask scheduleTask)
        {
            //task run for the first time
            if (!scheduleTask.LastStartUtc.HasValue && !scheduleTask.LastEndUtc.HasValue)
            {
                return(false);
            }

            var lastStartUtc = scheduleTask.LastStartUtc ?? DateTime.UtcNow;

            //task already finished
            if (scheduleTask.LastEndUtc.HasValue && lastStartUtc < scheduleTask.LastEndUtc)
            {
                return(false);
            }

            //task wasn't finished last time
            if (lastStartUtc.AddSeconds(scheduleTask.Seconds) <= DateTime.UtcNow)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 2
0
 /// <summary>
 /// Ctor for ScheduledTaskRunner
 /// </summary>
 /// <param name="task">Task </param>
 public ScheduledTaskRunner(ScheduledTask task)
 {
     ScheduleTask = task;
     logger       = Utilities.Logger;
     logger.SetNLogLogger("ScheduledTaskRunner");
 }