루프가 있으며 완료하는 데 1 시간 정도 걸립니다. 루프에서 나는 db에 레코드를 삽입하고 업데이트하고 있습니다. 비록 관련성이 있다고 생각하지 않지만, 경우에 따라.매 20 초마다 일부 정보를 기록하십시오. Java 1.4 만
매 20 초마다 DB에 대한 업데이트를 작성하고 싶습니다. 그래서 루프 시작 부분에서 시간을 확인해야합니다. 이렇게하는 가장 좋은 방법은 무엇입니까?
루프가 있으며 완료하는 데 1 시간 정도 걸립니다. 루프에서 나는 db에 레코드를 삽입하고 업데이트하고 있습니다. 비록 관련성이 있다고 생각하지 않지만, 경우에 따라.매 20 초마다 일부 정보를 기록하십시오. Java 1.4 만
매 20 초마다 DB에 대한 업데이트를 작성하고 싶습니다. 그래서 루프 시작 부분에서 시간을 확인해야합니다. 이렇게하는 가장 좋은 방법은 무엇입니까?
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();
흠.
long time = System.currentTimeMillis();
for(;;) {
//doStuff
if((System.currentTimeMillis() - time) > 20000) {
// log message
time = System.currentTimeMillis();
}
}
당신은 20 초 기간에 TimerTask 및 schedule it를 만들 수 있습니다 : 이것은 당신이 정말 당신이 할 수있는 한 후 수행 할 작업입니다 잘합니다.
타이머 문제는 Quartz 프레임 워크를 사용하는 것이 좋습니다. 나는 최신 릴리스가 1.4를 지원하지만 아마도 초기 릴리스를 지원하지 않는다고 생각합니다. cron 표현식을 사용해도 작업, 트리거를 작성할 수 있습니다. http://www.quartz-scheduler.org/
+1 JDK 1.4 프로젝트에는 Quartz 1.6.1이 사용되었습니다. – zawhtut
자바 1.4의 특별한 이유는 무엇입니까? 1.6은 2006 년 이후 출시되었습니다. –