2016-03-22 105 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