-
스프링 MVC 기반 작업스케쥴링(Task Scheduling) 프로그램 구현하기카테고리 없음 2019. 7. 12. 14:16
테스트 환경:
스프링 (3.1.1.RELEASE)
Spring Tool Suite (Version: 3.9.7.RELEASE)
1. 작업스케쥴링 구현방법 종류
확인해 본 바로는 스프링에서 스케쥴링 프로그램을 구현하는 방법은 크게 두가지 정도가 많이 사용되는 듯 싶다.
- 첫번째, 어노테이션 사용
- 두번째, Quartz(쿼츠) 오픈소스라이브러리 사용
Quartz 사이트의 첫화면 소개글을 보면 richly featured라고 표현되어 있고 작은 프로그램 부터 큰 규모의 프로그램에서도 사용가능하다고 하니 한번 샘플도 만들고 성능테스트도 해 봐야 할것 같다.
하지만, 여기서는 가장 간단하고 쉽게 구현할수 있는 어노테이션 방법을 소개하고자 한다.
2. 어노테이션 설정
관련 자료를 찾아보면서 정리할 때만 해도 뭔가 복잡했는데, 샘플을 구현하고 나니 심플해서 좀 허무하다.
일정 간격으로 실행이 필요한 메소드에 @Scheduled 붙여주고 원하는 딜레이 타임을 지정해 준다.
@Scheduled(fixedDelay = 5000) public void scheduleRun() { logger.info("scheduler check = " + formattedDate); }
만약 좀더 정교한 스케쥴링이 필요하다면 크론 표현식 사용도 가능하다.
@Scheduled(cron="* * * * * *")
이 외에도 다양한 @Scheduled 사용을 위한 옵션과 스프링 스케쥴링에 대한 개념이 설명된 스프링 프레임워크 문서를 아래 링크 하도록 한다.
3. XML 설정
이제 스프링 MVC 기반으로 생성된 프로젝트내 root-context.xml에 아래 내용을 추가해 준다.
<task:annotation-driven executor="myExecutor" scheduler="myScheduler" /> <task:executor id="myExecutor" pool-size="5" /> <task:scheduler id="myScheduler" pool-size="5" /> <bean id="jobService" class="com.spschool.scheduler.Scheduler" />
task 네임스페이스가 선택되어 있지 않다면 아래 화면처럼 해당 네임스페이스를 선택해 준다.
4. 관련문서
Spring Framework Documentation
https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#scheduling
Integration
As a lightweight container, Spring is often considered an EJB replacement. We do believe that for many, if not most, applications and use cases, Spring, as a container, combined with its rich supporting functionality in the area of transactions, ORM and JD
docs.spring.io
Quartz Enterprise Job Scheduler
https://www.quartz-scheduler.org/
Quartz Enterprise Job Scheduler
What is the Quartz Job Scheduling Library? Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smallest stand-alone application to the largest e-commerce system. Quartz can
www.quartz-scheduler.org
스프링 MVC 기반 프로젝트 생성하기
스프링 MVC기반 프로젝트 만들기
1. File > New> Spring Legacy Project 선택 2. Spring MVC Project 선택 3. 패키지명 입력 4. MVC 기반 프로젝트 생성완료 5. 샘플로 만들어진 home.jsp 한글이 깨지면 아래 태그 추가 <%@ page language="ja..
spschool.tistory.com