반응형
1. 개요
- Spring에서 제공하는 quartz에 대해서 포스팅해보자.
- http://www.quartz-scheduler.org/documentation/
2. 개념
- Spring Quartz는 오픈소스로 스케줄링 라이브러리 이다.
- Quartz 스케쥴러 실행과 관계된 주요 요소는 Scheduler, Job, JobDetail, Trigger 가 있다.
-
Scheduler 는 Quartz 실행 환경을 관리하는 핵심 개체이다.
-
Job 은 사용자가 수행할 작업을 정의하는 인터페이스로서 Trigger 개체를 이용하여 스케쥴할 수 있다.
-
JobDetail 는 작업명과 작업그룹과 같은 수행할 Job에 대한 상세 정보를 정의하는 개체이다.
-
Trigger 는 정의한 Job 개체의 실행 스케쥴을 정의하는 개체로서 Scheduler 개체에게 Job 수행시점을 알려주는 개체이다.
3. Spring 과 Quartz 통합
- pom.xml
- 전자정부프레임워크의 pom.xml 쿼츠는 기본적으로 탑재되어있다.
# pom.xml
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
- context-scheduler.xml 생성
- 시간단위 정보는 아래와 같다.
- 24시간: 86400000, 12시간 : 43200000, 1시간 : 3600000, 10분: 600000, 1분 : 60000, 10초 : 10000
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 24시간: 86400000, 12시간 : 43200000, 1시간 : 3600000, 10분: 600000, 1분 : 60000, 10초 : 10000 -->
<bean id="schedulerTestId"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="triggerScheduling" />
<property name="targetMethod" value="schedulerTest" />
<property name="concurrent" value="false" />
</bean>
<bean id="schedulerTestTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="schedulerTestId" />
<property name="startDelay" value="1000" /> <!-- 1초후에 실행 -->
<property name="repeatInterval" value="10000" /> <!-- 매 1분마다 실행 -->
</bean>
<bean id="schedulerTestScheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="schedulerTestTrigger" />
</list>
</property>
</bean>
</beans>
- TriggerScheduling.java 파일을 만든다.
import org.springframework.stereotype.Service;
@Service("triggerScheduling")
public class TriggerScheduling {
public void schedulerTest() throws Exception {
System.out.println("스케쥴러 테스트");
}
}
4. 테스트
- 시작과 동시에 1회 실행되고 이후 10초마다 갱신된다.
반응형
'개발 > egovframework' 카테고리의 다른 글
[전자정부프레임워크] Id Generation 시퀀스 관리 (0) | 2023.05.02 |
---|---|
[전자정부프레임워크] 스프링시큐리티 로그인 적용(2/2) (0) | 2023.03.31 |
[전자정부프레임워크] 스프링시큐리티 로그인 적용(1/2) (0) | 2023.03.30 |
[전자정부프레임워크] Spring profile (운영,개발 분리) (0) | 2023.03.22 |
[전자정부프레임워크] 실무용 개발환경 구축해보기 (0) | 2023.03.21 |