2016-03-22 102 views
0

的执行时间,我在bean,它定期执行有一个方法:春天 - 找到@Scheduled

@Scheduled(fixedRate = xx) 
public void runPeriodically() { 
    // do smt... 
} 

现在我想找出其先前执行的时间。我怎样才能做到这一点?我阅读了关于Trigger的界面,但我不清楚如何使用它来满足我的需求。

回答

1

我可能会错过一些东西,但不会有简单的实例变量来完成这项工作吗?

private Date lastRun; 

@Scheduled(fixedRate = xx) 
public void runPeriodically() { 
    // do smt... 
    lastRun = new Date(); 
} 

对于Trigger接口:你不能用Trigger接口结合使用@Scheduled。至少不是开箱即用的。如果您想使用Trigger,则需要使用TaskScheduler"feed" it with Trigger objects。例如。

scheduler.schedule(task, new CronTrigger("0 15 9-17 * * MON-FRI"));

CronTrigger显然实现Trigger,所以你把所有的接口方法那里。

+0

我认为你的答案解决了这个问题,但与TriggerContext触发接口,我将有权访问像lastCompletionTime,lastActualExecutionTime和lastScheduledExecutionTime方法。所以如果你能给我看一个用Trigger做的例子,我会很感激。 – void

+0

@void我更新了我的答案 – msparer