コード例 #1
0
        public void TestResumeAllCrontabs()
        {
            ScheduleMediator.ResumeAll();

            //线程睡眠
            Thread.Sleep(6000);
        }
コード例 #2
0
        public void TestRecoverCrontabs()
        {
            ScheduleMediator.Recover();

            //线程睡眠
            Thread.Sleep(6000);
        }
コード例 #3
0
        public void TestResumeCrontab()
        {
            //开始调度
            TimeSpan           timeSpan           = new TimeSpan(0, 0, 2);
            RecurrenceStrategy recurrenceStrategy = new RecurrenceStrategy(timeSpan);
            ShowTimeCrontab    showTimeCrontab    = new ShowTimeCrontab("Hello World !", recurrenceStrategy);

            Assert.IsTrue(showTimeCrontab.Count == 0);

            ScheduleMediator.Schedule(showTimeCrontab, 0);

            //线程睡眠
            Thread.Sleep(5000);

            Assert.IsTrue(showTimeCrontab.Count == 3);

            //暂停
            ScheduleMediator.Pause(showTimeCrontab.Id);

            //线程睡眠
            Thread.Sleep(5000);

            Assert.IsTrue(showTimeCrontab.Count == 3);

            //恢复
            ScheduleMediator.Resume(showTimeCrontab.Id);

            //线程睡眠
            Thread.Sleep(5000);

            Assert.IsTrue(showTimeCrontab.Count > 3);
        }
コード例 #4
0
        public void Cleanup()
        {
            if (ResolveMediator.ContainerBuilt)
            {
                ResolveMediator.Dispose();
            }

            ScheduleMediator.Clear();
        }
コード例 #5
0
        public void TestScheduleTimePoint_Error()
        {
            //清空调度任务
            ScheduleMediator.Clear();

            //开始调度,在当前时间2秒后执行
            ScheduleMediator.Schedule(StubAlarmTask.Detail, DateTime.Now.AddSeconds(2));

            Assert.IsNull(StubAlarmTask.ReferenceParam);
        }
コード例 #6
0
        public void Init()
        {
            if (!ResolveMediator.ContainerBuilt)
            {
                IServiceCollection builder = ResolveMediator.GetServiceCollection();
                builder.RegisterConfigs();

                ResolveMediator.Build();
            }

            ScheduleMediator.Clear();
        }
コード例 #7
0
        public void TestScheduleInspect_Error()
        {
            //清空调度任务
            ScheduleMediator.Clear();

            //清空参考系
            StubShowTimeTask.ReferenceTimes.Clear();

            //开始调度,每2秒执行一次
            ScheduleMediator.ScheduleBySecond(StubShowTimeTask.Detail, 2);

            Assert.IsTrue(!StubShowTimeTask.ReferenceTimes.Any());
        }
コード例 #8
0
        public void TestException()
        {
            string log = $"{AppDomain.CurrentDomain.BaseDirectory}\\ScheduleLogs\\ExceptionLogs\\{DateTime.Today:yyyyMMdd}.txt";

            //开始调度
            TimeSpan           timeSpan           = new TimeSpan(0, 0, 2);
            RecurrenceStrategy recurrenceStrategy = new RecurrenceStrategy(timeSpan);
            ShowTimeCrontab    showTimeCrontab    = new ShowTimeCrontab("Exception", recurrenceStrategy);

            ScheduleMediator.Schedule(showTimeCrontab, 0);

            //线程睡眠
            Thread.Sleep(5100);

            Assert.IsTrue(File.Exists(log));
        }
コード例 #9
0
        public void TestScheduleInspect()
        {
            //开始调度
            TimeSpan         timeSpan         = new TimeSpan(0, 0, 2);
            TimeSpanStrategy timeSpanStrategy = new TimeSpanStrategy(timeSpan);
            ShowTimeCrontab  showTimeCrontab  = new ShowTimeCrontab("Hello World !", timeSpanStrategy);

            Assert.IsTrue(showTimeCrontab.Count == 0);

            ScheduleMediator.Schedule(showTimeCrontab);

            //线程睡眠
            Thread.Sleep(5000);

            Assert.IsTrue(showTimeCrontab.Count == 3);
        }
コード例 #10
0
        public void TestScheduleInspect()
        {
            //清空调度任务
            ScheduleMediator.Clear();

            //清空参考系
            StubShowTimeTask.ReferenceTimes.Clear();

            //开始调度,每2秒执行一次
            ScheduleMediator.ScheduleBySecond(StubShowTimeTask.Detail, 2);

            //线程睡眠
            Thread.Sleep(4100);

            Assert.IsTrue(StubShowTimeTask.ReferenceTimes.Count == 3);
        }
コード例 #11
0
        public void TestFindAllCrontabs()
        {
            TimeSpan               timeSpan               = new TimeSpan(0, 0, 2);
            RecurrenceStrategy     recurrenceStrategy     = new RecurrenceStrategy(timeSpan);
            string                 cronExpression         = DateTime.Now.AddSeconds(2).ToCronExpression();
            CronExpressionStrategy cronExpressionStrategy = new CronExpressionStrategy(cronExpression);

            ShowTimeCrontab showTimeCrontab = new ShowTimeCrontab("Hello World !", recurrenceStrategy);
            AlarmCrontab    alarmCrontab    = new AlarmCrontab("Hello World !", cronExpressionStrategy);

            ScheduleMediator.Schedule(showTimeCrontab, 0);
            ScheduleMediator.Schedule(alarmCrontab, 0);

            IList <ICrontab> crontabs = ScheduleMediator.FindAll();

            Assert.IsTrue(crontabs.Count == 2);
        }
コード例 #12
0
        public void TestScheduleTimePoint()
        {
            //开始调度
            FixedTimeStrategy fixedTimeStrategy = new FixedTimeStrategy(DateTime.Now.AddSeconds(3));
            AlarmCrontab      alarmCrontab      = new AlarmCrontab("Hello World !", fixedTimeStrategy);

            Assert.IsTrue(alarmCrontab.Count == 0);
            Assert.IsFalse(alarmCrontab.Rung);

            ScheduleMediator.Schedule(alarmCrontab);

            //线程睡眠
            Thread.Sleep(5000);

            Assert.IsTrue(alarmCrontab.Count == 1);
            Assert.IsTrue(alarmCrontab.Rung);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        public void TestScheduleTimePoint()
        {
            //开始调度
            string cronExpression = DateTime.Now.AddSeconds(2).ToCronExpression();
            CronExpressionStrategy cronExpressionStrategy = new CronExpressionStrategy(cronExpression);
            AlarmCrontab           alarmCrontab           = new AlarmCrontab("Hello World !", cronExpressionStrategy);

            Assert.IsTrue(alarmCrontab.Count == 0);
            Assert.IsFalse(alarmCrontab.Rung);

            ScheduleMediator.Schedule(alarmCrontab);

            //线程睡眠
            Thread.Sleep(5000);

            Assert.IsTrue(alarmCrontab.Count == 1);
            Assert.IsTrue(alarmCrontab.Rung);
        }
コード例 #15
0
 public void TestCrontabConfiguration()
 {
     ScheduleMediator.Schedule <RecurrenceCrontab>();
 }