项目中需要计算cron表达式对应的下次执行时间是否为当前分钟,但是是用的是spring-task,没有引入quartz,网上搜到的计算的方法多数是用的TriggerUtils,不能满足我的需求
自己找了一下,spring其实已经提供了现成的类给大家使用,它就是CronSequenceGenerator:在spring-context包里。
不废话,直接关键代码:
CronSequenceGenerator cronSequenceGenerator = new CronSequenceGenerator(job.getCron());
Date nextTriggerTime = cronSequenceGenerator.next(lastMinute);//lastMinute 我这里是上一分钟的date类型对象
if(lastMinute.before(nextTriggerTime) && nextTriggerTime.before(nextMinute)){//任务应该在本分钟被执行,将任务加入待触发队列
triggeredJobs.add(job);
}