JAVA
자바 TimerTask
illho
2023. 12. 21. 18:05
타이머는 자바 스레드처럼 일종의 스레드 클래스이다.
어떤 작업을 일정 시간마다 실행하기 위해서는 java.util.Timer 클래스와 java.util.TimerTask 클래스를 사용한다.
Timer 클래스 => Timer timer = new Timer()로 초기화해 사용.
Timer task = new TimerTask() { @Override }로 사용
@Override 아래에 정의된 run()메소드가 task로 실행된다.
.scheduleAtFixedRate() 메서드
scheduleAtFixedRate(TimerTask task, long delay, long period)
delay가 지난 후에 period 간격으로 task를 수행한다.
TimerTask를 활용한 소스
public OutScanJobListSaveResult insertLoopTest(HttpServletRequest request) throws Exception{
OutScanJobListSaveResult outScanJobListSaveResult = new OutScanJobListSaveResult();
Timer timer = new Timer();
long delay = 0;
long period = 1000; // 1초마다 실행
timer.scheduleAtFixedRate(new TimerTask() {
private int count = 0;
@Override
public void run() {
if (count < 10) {
// 1초에 한 번씩 실행할 코드
System.out.println("1초에 한 번씩 실행합니다. 횟수: " + (count + 1));
outScanMapper.insertLoopTest(count);
count++;
} else {
// 1000번 실행 후 타이머 종료
timer.cancel();
}
}
}, delay, period);
return outScanJobListSaveResult;