2012-09-03 40 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分鐘(可配置),它可能根本無法啓動 - 這取決於您設置的失火指令。