2011-05-03 75 views
0

我有一個循環,需要一個小時才能完成。 在循環中我插入和更新db中的記錄,雖然我不認爲這是相關的,但以防萬一。每20秒鐘後記錄一些信息,僅限Java 1.4

每20秒左右我想寫一個更新到數據庫。 所以我想我需要做一些時間檢查循環的開始。 這樣做的最好方法是什麼?

+0

僅限Java 1.4的任何特定原因? 1.6自2006年以來已經出來。 – 2011-05-03 21:42:33

回答

2
final long interval = 20 * 1000; 
long lastLogged = System.currentTimeMillis(); 
while (processing) { 
    if (System.currentTimeMillis() - lastLogged > interval) { 
    lastLogged = System.currentTimeMillis(); 
    logToDatabase(); 
    } 
    // do rest of processing 
} 
// Optionally: 
logToDatabase(); 
0

嗯。那麼,如果這是你真正想做的事,那麼你可以做:

long time = System.currentTimeMillis(); 

for(;;) { 

//doStuff 

if((System.currentTimeMillis() - time) > 20000) { 
    // log message 
    time = System.currentTimeMillis(); 
} 

} 
1

對於計時器問題,我優先使用Quartz框架。我不認爲最新版本支持1.4,但可能是早期版本。即使使用cron表達式,您也可以創建作業,觸發器。 http://www.quartz-scheduler.org/

+0

+1我們在JDK 1.4項目中使用了Quartz 1.6.1。 – zawhtut 2011-05-04 04:06:57