public void Reschedule(DateTime lastRun, Schedule schedule = null)
        {
            Schedule = schedule ?? Schedule;

            var nextInterval = Schedule.GetNextInterval(lastRun);

            // Limit next interval to 40 days so it won't conflict with the maximum time allowed to set a timer.
            nextInterval = nextInterval < MaximumTimeSpanInterval ? nextInterval : MaximumTimeSpanInterval;

            if (schedule != null)
            {
                Logger.LogInformation("Scheduling WebJob with " + schedule + " next schedule expected in " + nextInterval);
            }
            else
            {
                Logger.LogInformation("Next schedule expected in " + nextInterval);
            }

            _timer.Change(nextInterval, Timeout.InfiniteTimeSpan);
        }
        public void Reschedule(DateTime lastRun, Schedule schedule = null)
        {
            Schedule = schedule ?? Schedule;

            var nextInterval = Schedule.GetNextInterval(lastRun);

            // Limit next interval to 40 days so it won't conflict with the maximum time allowed to set a timer.
            nextInterval = nextInterval < MaximumTimeSpanInterval ? nextInterval : MaximumTimeSpanInterval;

            if (schedule != null)
            {
                Logger.LogInformation("Scheduling WebJob with " + schedule + " next schedule expected in " + nextInterval);
            }
            else
            {
                Logger.LogInformation("Next schedule expected in " + nextInterval);
            }

            _analytics.JobEvent(TriggeredJob.Name.Fuzz(), $"Reschedule {nextInterval}", TriggeredJob.JobType, String.Empty);

            _timer.Change(nextInterval, Timeout.InfiniteTimeSpan);
        }