2011-05-03 5 views
0

루프가 있으며 완료하는 데 1 시간 정도 걸립니다. 루프에서 나는 db에 레코드를 삽입하고 업데이트하고 있습니다. 비록 관련성이 있다고 생각하지 않지만, 경우에 따라.매 20 초마다 일부 정보를 기록하십시오. Java 1.4 만

매 20 초마다 DB에 대한 업데이트를 작성하고 싶습니다. 그래서 루프 시작 부분에서 시간을 확인해야합니다. 이렇게하는 가장 좋은 방법은 무엇입니까?

+0

자바 1.4의 특별한 이유는 무엇입니까? 1.6은 2006 년 이후 출시되었습니다. –

답변

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(); 
} 

} 
2

당신은 20 초 기간에 TimerTaskschedule it를 만들 수 있습니다 : 이것은 당신이 정말 당신이 할 수있는 한 후 수행 할 작업입니다 잘합니다.

1

타이머 문제는 Quartz 프레임 워크를 사용하는 것이 좋습니다. 나는 최신 릴리스가 1.4를 지원하지만 아마도 초기 릴리스를 지원하지 않는다고 생각합니다. cron 표현식을 사용해도 작업, 트리거를 작성할 수 있습니다. http://www.quartz-scheduler.org/

+0

+1 JDK 1.4 프로젝트에는 Quartz 1.6.1이 사용되었습니다. – zawhtut

관련 문제