[Quartz] Spring xml 설정

S_H_H·2022년 10월 5일
0

Quartz And Batch

목록 보기
1/8

In memory 방식이란?

서버가 구동될 때, 코드에 작성된 스케줄을 읽어 해당 시간에 실행하는 방식

Quartz 추가

pom.xml에서 원하시는 버전의 Quartz 설정을 넣어줍니다.

<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>버전 기입</version>
</dependency>
<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz-jobs</artifactId>
  <version>버전 기입</version>
</dependency>

스케줄러 .xml 파일 추가

해당 xml 파일은 Job, Trigger를 관리하게 됩니다.

Trigger

Trigger란 Job을 실행시키기 위해 시작 시간 및 반복 등등 스케줄에 대한 정보를 담고 있습니다.
아래 2가지 타입으로 사용이 가능합니다.

  • cronTrigger
    - 복잡한 반복, 즉 상세 한 일정으로 반복을 사용할 경우
    ex) 매주 월,수,금 오전 01시 15분에 실행
  • simpleTrigger
    - 간단한 반복
    ex) 10분 마다 실행

Job

실행될 작업을 뜻하고 있습니다.
위에서 말하는 작업이란 business logic이거나, 처리를 해야하는 일입니다.

따라서 xml에는 아래와 같이 설정하게 됩니다.


<?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.xsd">
  
  <bean id="testExcueteJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    <property name="jobClass" value="실행할 service"/>
  </bean>

  <bean id="testExcueteTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="testExcueteJob"/>
    <property name="cronExpression" value="0 10 16 1/1 * ? *"/>
  </bean>

  <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="testExcueteTrigger"/>
      </list>
    </property>
  </bean>
</bean>

testExcueteJob는 Job 이름을 결정하고, Job이 실행할 로직은 jobClass 로 해당 value에 넣어주면 됩니다.

testExcueteTrigger는 Trigger 이름을 지정하고, 해당 하는 시간에 Job이 실행 될 수 있도록
jobDetailref는 Job Name을 적어주시면 됩니다.

scheduler 의 list에 Trigger 이름을 적어주시면 됩니다.

profile
LEVEL UP

0개의 댓글