일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- full stack
- 중국
- mybatis
- lazy-loading
- ECU 업그레이드
- 윈도우
- 마녀정원
- dns-prefetch
- 벤타 청소
- 타이레놀 ADHD
- technical framework
- 컬럼명 찾기
- 쇠구슬 소리
- keyAlias
- 기술 프레임워크
- 파라미터
- keytools
- x509
- xdg-open
- 주문 거절
- 검색 운영
- Remote Desktop Manager
- ssh 웹사이트 열기
- SQL Server
- JBoss
- 사용공간
- Post
- root 경로 변경
- 손 발이 차가운 아이
- IQAir
- Today
- Total
Collective Intelligence
Quartz Trigger를 이용한 간단한 스케줄링 본문
심심해서(?) 라기 보다는 중국 IDC에 작동중인 서버가 아무이유없이 죽는 경우가 발생해서 아주 간단하게
웹서비스 상태를 체크해서 문제 발생시 담당자에게 이메일을 보내는 프로그램을 만든 적이 있다.
역시 quartz라는 훌륭한 라이브러리가 있어서 cron trigger를 쓰면 된다.
maven에 dependency를 추가하면 준비는 일단 끝나고
<dependency> |
원래는 Job을 만들어서 Trigger를 생성하는데 난 원래 이렇게 했었다.
JobDetail job = JobBuilder.newJob(TestUrl.class).withIdentity("job01").build(); |
아주 간단하게 5분마다 job을 실행시키는 건데 중요한건 실행 주기를 설정하는 5 * * * * ? 이 부분에 대한 식을 따로 공부해야 하는 것이다.
가독성도 떨어지고 그냥 보기만해도 뭔가 싫어지는 느낌이다. 자주 쓰지도 않을 것이고, 특별한 기술이 아닌 것에 대한 시간을 쓰고싶지 않아
검색 신공을 발휘했더니 역시나 간단한 방법이 있었다.
위에서 CronTrigger 대신 그냥 Trigger를 쓰니깐 아주 쉽게 스케줄 설정을 할 수 있다.
Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMinutes(5).repeatForever()).build(); |
말그대로 Simple 한 스케줄 빌더이다.
IDE에서 Code Assistance의 가이드를 받으면 다양하게 스케줄을 설정할 수 있고, 반복 빈도도 따로 설정할 수 있다.
누가봐도 알 수 있고, 실수할 가능성도 줄어든다. 대규모 프로그램이야 이것저것 다 따졌겠지만
간단한 모니터링 프로그램에서 사용할 것이라 그 간편함 때문에 바로 사용하게 되었다.
SchedulerFactory 선언이나 다른것은 동일하다.
public void run() throws Exception { |
'개발 > JAVA' 카테고리의 다른 글
Keytool 을 이용하여 .cer 파일 만들기 - x509 certificate (0) | 2017.02.28 |
---|---|
Java 8 Lambda(람다) 식 (0) | 2016.06.10 |
모델 (Model) 클래스를 json 형태로 변환 (0) | 2016.04.04 |
[JAVA 1.8] Map 에서 Value값을 Sorting하기 (0) | 2016.03.31 |