我试图通过创建作业来测试Quartz.net dll和示例代码。但我想改变系统时间并测试一些情况,例如:我正在尝试设置此SystemTime.UtcNow =()=> new DateTime(2013,11,23,58,00);在我的测试控制台应用程序创建之前,并添加了一个作业以打勾.WithCronSchedule(“0 59 23?* *”),但它没有滴答作响......不确定SystemTime是否生效。
以下示例代码:
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler();
SystemTime.UtcNow = () => new DateTime(2013, 12, 04, 23, 58, 00);
SystemTime.Now = () => new DateTime(2013, 12, 04, 23, 58, 00);
////TEST
IJobDetail job = JobBuilder.Create<SimpleJob>()
.WithIdentity("job1", "group1")
.Build();
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithCronSchedule("0 59 23 ? * *")
.Build();
答案 0 :(得分:0)
您是否尝试将SystemTime
设置为完全预定的时间或之后的一段时间?您的SystemTime
值不会改变,如果Quartz.Net尝试检查是否应该使用该委托运行作业,那么实际上它将不是在您的测试中运行它的正确时间。