private JobScheduleFrequencyBase GetJobScheduleFrequency() { JobScheduleFrequencyBase jobScheduleFrequency = null; var timeFrequency = GetTimeFrequency(); string frequencyType = this.ddlFrequency.Items[ddlFrequency.SelectedIndex].Value; switch (frequencyType) { case "daily": int dayCount = int.Parse(txtRecurDay.Value); jobScheduleFrequency = new DailyJobScheduleFrequency(dayCount, timeFrequency); break; case "weekly": List <DayOfWeek> weekdays = GetSelectedWeekday(); jobScheduleFrequency = new WeeklyJobScheduleFrequency(weekdays, int.Parse(txtWeek.Value), timeFrequency); break; case "monthly": int days = int.Parse(this.txtDayOfWeek.Value); int months = int.Parse(this.txtMonthCount.Value); jobScheduleFrequency = new MonthlyJobScheduleFrequency(days, months, timeFrequency); break; default: break; } //jobScheduleFrequency.LastModifyTime = DateTime.Now; return(jobScheduleFrequency); }
public void EstimateDailyRecurringTimeJobScheduleFrequencyTest() { DailyJobScheduleFrequency dailyFrequency = PrepareDailyRecurringJobSchedule(2); List <DateTime> estimateTime = dailyFrequency.EstimateExecuteTime(DateTime.Now, _TimeOffset, 20, TimeSpan.FromSeconds(10)); estimateTime.ForEach(d => Console.WriteLine(d.ToString("yyyy-MM-dd HH:mm:ss"))); }
public void NotInIntervalDailyFixdTimeJobScheduleFrequencyTest() { DailyJobScheduleFrequency dailyFrequency = PrepareDailyJobSchedule(2); DateTime startTime = DateTime.Now.Date.AddDays(1); DateTime timePoint = startTime + new TimeSpan(10, 10, 10); TimeScope scope = dailyFrequency.GetTimeScope(startTime, timePoint, _TimeOffset); Assert.IsNotNull(scope); }
/// <summary> /// 创建立即调度的计划 /// </summary> /// <returns></returns> internal static JobSchedule CreateImmediateSchedule() { DateTime now = DateTime.Now; DateTime execTime = now.AddSeconds(2); FixedTimeFrequency timeFrequency = new FixedTimeFrequency(new TimeSpan(execTime.Hour, execTime.Minute, execTime.Second)); DailyJobScheduleFrequency frequency = new DailyJobScheduleFrequency(1, timeFrequency); JobSchedule schedule = new JobSchedule(UuidHelper.NewUuidString(), "立即执行", DateTime.Now, frequency); schedule.SchduleType = JobSchduleType.Temporary; schedule.StartTime = now.AddHours(-1); schedule.EndTime = now.AddDays(1); return(schedule); }
public void InIntervalDailyFixdTimeJobScheduleFrequencyTest() { DailyJobScheduleFrequency dailyFrequency = PrepareDailyJobSchedule(2); DateTime startTime = DateTime.Now.Date.AddDays(2); DateTime timePoint = startTime + new TimeSpan(10, 10, 10); TimeScope scope = dailyFrequency.GetTimeScope(startTime, timePoint, _TimeOffset); Assert.IsNotNull(scope); Console.WriteLine(scope.BeginTime); Console.WriteLine(scope.EndTime); Assert.AreEqual(new TimeSpan(10, 10, 10) - _TimeOffset, scope.BeginTime); Assert.AreEqual(new TimeSpan(10, 10, 10) + _TimeOffset, scope.EndTime); }
private static JobSchedule CreateSingleTimeSchedule() { DateTime now = DateTime.Now; DateTime execTime = now.AddSeconds(6); FixedTimeFrequency timeFrequency = new FixedTimeFrequency(new TimeSpan(execTime.Hour, execTime.Minute, execTime.Second)); DailyJobScheduleFrequency frequency = new DailyJobScheduleFrequency(1, timeFrequency); JobSchedule schedule = new JobSchedule(UuidHelper.NewUuidString(), "一般调度", now.AddDays(-1), frequency); schedule.SchduleType = JobSchduleType.Temporary; schedule.EndTime = now.AddHours(1); return schedule; }