어떤 프로젝트에서 , 특정 시각이나 일정시간 간격으로 job 이 실행되어야 하는 경우가 있다.
매일 혹은 매월 통계데이터를 만들어야 되는 배치성 업무나, 일정 주기별로 서비스의 상태나 변경사항을 관리자에게 알려줘야되는 업무가 그 예다.
일반적으로 Java Timer API 나 crontab, Quartz로 구현한다.
(그 외에도 다수의 job scheduler library 가 존재한다.)
나는 PG(Payment Gateway) 개발을 하고 있다.
나의 경우에는 아래와 같은 배치성 업무들이 있다
매일 새벽에 그전날 결제건에 대한 통계생성
외부 PG업체에서 전날의 결제정보를 받아와 우리시스템과의 대사작업 수행
매월 초 이전달 결제에 대한 정산작업
매월 말 이전달 결제에 대한 청구작업
각 업무의 특성에 맞게 crontab 과 quartz 를 선택하여 사용하고 있다.
자바기반 스케줄링 프로그래밍에 대한 자세한 내용은 아래 페이지를 참조하면 된다.
참조 :
http://archive.oreilly.com/pub/a/java/archive/quartz.html
http://tmwalker.tistory.com/36 (번역)