//方法 #region # 获取执行策略 —— static ExecutionStrategy GetExecutionStrategy(string strategyType... /// <summary> /// 获取执行策略 /// </summary> /// <param name="strategyType">策略类型</param> /// <param name="strategy">策略</param> /// <returns>执行策略</returns> public static ExecutionStrategy GetExecutionStrategy(string strategyType, string strategy) { if (strategyType == nameof(FixedTimeStrategy)) { DateTime triggerTime = DateTime.Parse(strategy); FixedTimeStrategy fixedTimeStrategy = new FixedTimeStrategy(triggerTime); return(fixedTimeStrategy); } if (strategyType == nameof(RepeatedTimeStrategy)) { TimeSpan triggerTime = TimeSpan.Parse(strategy); RepeatedTimeStrategy repeatedTimeStrategy = new RepeatedTimeStrategy(triggerTime); return(repeatedTimeStrategy); } if (strategyType == nameof(RecurrenceStrategy)) { TimeSpan interval = TimeSpan.Parse(strategy); RecurrenceStrategy recurrenceStrategy = new RecurrenceStrategy(interval); return(recurrenceStrategy); } if (strategyType == nameof(CronExpressionStrategy)) { CronExpressionStrategy cronExpressionStrategy = new CronExpressionStrategy(strategy); return(cronExpressionStrategy); } throw new NotSupportedException("无此类型执行策略"); }
public void TestScheduleRepeatedTimePoint() { //开始调度 TimeSpan triggerTime = DateTime.Now.AddSeconds(3).TimeOfDay; RepeatedTimeStrategy repeatedTimeStrategy = new RepeatedTimeStrategy(triggerTime); AlarmCrontab alarmCrontab = new AlarmCrontab("Hello World !", repeatedTimeStrategy); Assert.IsTrue(alarmCrontab.Count == 0); Assert.IsFalse(alarmCrontab.Rung); ScheduleMediator.Schedule(alarmCrontab, 0); //线程睡眠 Thread.Sleep(5000); Assert.IsTrue(alarmCrontab.Count == 1); Assert.IsTrue(alarmCrontab.Rung); }