2012-09-03 51 views
1

我想要获得作业应该执行的时间与最近执行的实际执行时间之间的延迟。例如,如果一个工作应该在晚上8点开始工作,而实际上是晚上8点10分开始工作,那么结果应该是10分钟。上次实际火灾时间和预定火灾时间之间的差异

我知道,我可以使用Trigger.getPreviousFireTime()得到它实际上最后执行的时间,但我看不出有任何的方式来获得相应的预定时间(例如,对于上面的例子晚上8点),这可能吗?

回答

0

你的工作里面使用下面的代码:

@Override 
public void execute(final JobExecutionContext context) { 
    long diffInMillis = 
       new Date().getTime() - context.getScheduledFireTime().getTime(); 
    //... 
} 

正如你可能已经猜到了context.getScheduledFireTime()是当工作是假设运行时间(理想差应接近于0)。

请注意,如果您的工作迟到超过10分钟(可配置),它可能根本无法启动 - 这取决于您设置的失火指令。