Spring判断当天最后一次定时任务
0
要判断当天最后一次定时任务思路:获取下次执行时间,判断日期是不是今天。
@Autowired
private ApplicationContext context;
...
// 获取正确的定时任务时间表达式
Map<String, CronTask> tasks = context.getBeansOfType(CronTask.class);
String expression = null; // 时间表达式
Set<String> keys = tasks.keySet();
for (String key : keys) {
CronTask task = tasks.get(key);
ScheduledMethodRunnable runnable = (ScheduledMethodRunnable) task.getRunnable();
if("方法名".equals(runnable.getMethod().getName())) {
expression = task.getExpression();
break;
}
}
// 获取下次执行时间
CronTrigger cronTrigger = new CronTrigger(expression);
Date next = cronTrigger.nextExecutionTime(new SimpleTriggerContext());
// 比较日期省略
另外注意joda
这个比较日期的时候是除以24小时的,并不是比较的日期(其实没什么关系)。