public static void printNextTriggerTime(String cronExpression, LocalDateTime currentTime) {
CronSequenceGenerator generator = new CronSequenceGenerator(cronExpression);
Date d = Date.from(currentTime.atZone(ZoneId.systemDefault()).toInstant());
for (int i = 0; i < 10; i++) {
d = generator.next(d);
System.out.println(d);
}
}
2条答案
按热度按时间pod7payv1#
更精确地说,你可以使用
CronSequenceGenerator
来验证cron表达式的执行时间,Spring内部使用这个对象来计算cron表达式的下一次触发时间。例如,下面的函数将简单地打印出下10个触发时间。
所以,如果我输入:
它将输出:
这意味着
0 * * * * *
将每分钟运行一次,而不是每秒钟运行一次。goucqfw62#
对answer by Ken Chan的更新考虑到了Spring中不赞成使用
CronSequenceGenerator
而支持CronExpression:调用
printNextTime("0 * * * * *");
生成: