프로그램을 개발하다 보면 코드 실행 시간을 설정하기 위해 타이머를 사용하게 되는데, vertx 플랫폼에는 두 가지 유형의 타이머가 있어서 유용하게 사용되고 있습니다.
Vert.X 플랫폼에서 활용되는 타이머의 사용법을 알아보도록 하겠습니다.
1. setTimer
setTimer 함수는 일회성으로 사용하기 좋은 타이머입니다. 설정한 delay 시간만큼 대기 후 handler가 실행됩니다.
vertx.setTimer(long delay, Handler<Long> handler)
Set a one-shot timer to fire after delay milliseconds, at which point handler will be called with the id of the timer.
Parameters:
delay
handler
delay에는 밀리터리세컨즈로 시간을 입력하고 handler 부분에는 delay 시간이 지난 후 실행할 코드를 입력합니다.
예시를 보겠습니다.
long timerID;
System.out.println(new Date() + " :: setTimer " + "start");
timerID = vertx.setTimer(1000 * 5, new Handler<Long>() {
@Override
public void handle(Long event) {
System.out.println(new Date() + " :: setTimer " + "handler");
};
});
1000 * 5 (5초) 로 딜레이 시간을 설정하여 실행해봤습니다.
결과를 확인해보면
Thu Jan 06 10:03:04 KST 2022 :: setTimer start
Thu Jan 06 10:03:09 KST 2022 :: setTimer handler
타이머가 생성되고 5초 뒤에 handler 내부 코드가 실행되었습니다.
2. setPeriodic
setPeriodic 함수는 주기적으로 반복하는 타이어입니다. 설정한 delay 시간 주기로 계속 반복하여 handler가 실행됩니다.
vertx.setPeriodic(long delay, Handler<Long> handler)
Set a periodic timer to fire every delay milliseconds, at which point handler will be called with the id of the timer.
Parameters:
delay
handler
setTimer 함수와 동일한 파라미터가 사용되네요.
delay에는 마찬가지로 밀리터리세컨즈로 시간을 입력하고 handler 부분에는 delay 시간 간격으로 반복 실행할 코드를 입력합니다.
예시를 보겠습니다.
long timerID;
int count = 0; // 타이머 테스트용 카운트
System.out.println(new Date() + " :: setPeriodic " + "start\n");
timerID = vertx.setPeriodic(1000 * 2, new Handler<Long>() {
@Override
public void handle(Long event) {
count += 1;
System.out.println(new Date() + " :: setPeriodic " + "count " + count);
}
});
1000 * 2 (2초) 로 딜레이 시간을 설정하여 실행해봤습니다.
결과를 확인해보면
Thu Jan 06 10:17:28 KST 2022 :: setPeriodic start
Thu Jan 06 10:17:30 KST 2022 :: setPeriodic count 1
Thu Jan 06 10:17:32 KST 2022 :: setPeriodic count 2
Thu Jan 06 10:17:34 KST 2022 :: setPeriodic count 3
Thu Jan 06 10:17:36 KST 2022 :: setPeriodic count 4
Thu Jan 06 10:17:38 KST 2022 :: setPeriodic count 5
Thu Jan 06 10:17:40 KST 2022 :: setPeriodic count 6
...
타이머가 생성되고 2초 간격으로 handler 내부 코드가 실행되었습니다.
결과에 출력된 시간을 보니 타이머가 바로 실행되어서 주기적으로 반복하는 것이 아니라 설정한 딜레이 시간만큼 기다렸다가 반복을 시작하네요.
3. cancelTimer
cancelTimer 함수는 타이머를 종료할 때 사용합니다. 일회성 타이머, 주기적 타이머 모두 사용 가능합니다.
vertx.cancelTimer(timerID)
'IT, 개발 > Vert.X' 카테고리의 다른 글
이클립스(Eclipse)에서 Vert.X 프로젝트 생성하고 개발 환경 구축하기 (0) | 2022.01.03 |
---|