首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

获取调度上一次触发时间

2012-10-06 
获取调度下一次触发时间需求:1、任务关联调度后,在页面上显示下一次执行(即调度的触发)时间。 技术约束: ???

获取调度下一次触发时间

需求:1、任务关联调度后,在页面上显示下一次执行(即调度的触发)时间。


技术约束:

???????? 1、关联时,使用的是CronTrigger。

????????? 1、业务中,只有将调度与任务关联时,才创建CronTrigg业务中,


解决方案1:从Scheduler中获取CronTrigger,然后调用getNextFireTime();

问题:返回的时间有时候不准确。

????????? 比如:定义一个4点-5点,每隔一分钟运行的调度。若在4点30分25秒关联任务,下次运行时间应该是4点31分,但从接口中获取的时间是下午4点,即调度的开始时间,只有在调度触发一次之后,获取的才是正确的时间。


解决方案2:解析CronTrigger中定义的CronExpression。?

CronTrigger quatrzTrigger = (CronTrigger)scheduler.getTrigger(.....);Date nexFireTime = getNextFireTime(quatrzTrigger.getCronExpression()); private Date getNextFireTime(String cronExpression) {  if (StringUtil.isEmptyString(cronExpression)){   return null;  }  try {   CronExpression cron = new CronExpression(cronExpression);   Date nextFireDate = cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));   reeturn  nextFireDate ;} catch (ParseException e) {   log.error(e);   return null;  } }

?

?????????????????

?????

?

热点排行