Quartz.Net CronTime IsSatisfiedBy()永不返回true?
问题描述:
我尝试使用Quartz.Net的CronExpression.IsSatisfiedBy()
函数简单一些。但是这个功能总是返回false
。即使当我用第二个表达式"* * * * * ?"
。示例代码如下:Quartz.Net CronTime IsSatisfiedBy()永不返回true?
//every second cron expression
var cron = new Quartz.CronExpression("* * * * * ?");
// all the results are always false
var result1 = cron.IsSatisfiedBy(DateTimeOffset.Now);
var result2 = cron.IsSatisfiedBy(DateTimeOffset.UtcNow);
var result3 = cron.IsSatisfiedBy(DateTime.Now);
var result4 = cron.IsSatisfiedBy(DateTime.UtcNow);
什么错了?
答
这是一个大约毫秒的Quartz.NET issue。 要解决此问题,您可以使用带有毫秒毫秒的时间的IsSatisfiedBy
方法。像这样:
var now = DateTimeOffset.UtcNow;
//no milliseconds time
var test = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour,
now.Minute, now.Second, now.Offset);
//every second cron expression
var cron = new Quartz.CronExpression("* * * * * ?");
//hey, that's true!
var result = cron.IsSatisfiedBy(test);