본문 바로가기

모바일환경코딩/java

[quartz scudule] 1. 스케쥴러로 특정 시간에 DB업데이트 환경설정

반응형

업무를 하며 특정 시간대에 특정 테이블에 업데이트를 해야하는 건이 생겼다. 기존에 개발된 형식이 있어서 그대로 따라하면 금방 해결된다. 금방 해결되지만 어떻게 흘러가는지 확인하고 설계한 다음 개발을 해야 시행착오를 면할 수 있다. 그림은 간단하다. 

 

아래 그림은 대략적인 흐름이다. 

 

quartz schedule

데이터도 있고 quartz schedule도 있던 거라서 환경설정만 해 주면 되는 소스가 있어서 설정이 간단했다.

 

아래는 quartz schedule부분의 환경설정한 부분이다. QuartzProperties.java에서 어노테이션으로 application.yml에 있는 데이터를 읽어올 수 있다.

 

crontabservice.sh는 서버에 설정하는 부분인데 application.yml하고 구분되는 부분은 대문자와 언더바 이다. 이걸 사용하는 이유는 서버마다 다르게 설정하기 위한 부분이다.

 

application.yml

quartz:

    srv-nm:1

    srv-schedule:0 5 2 * * ?

 

QuartzProperties.java

@ConfigurationProperties("quartz")

@Component

public class QuartzProperties {

     private String srvNm;



    private String srvSchedule;



    public String getSrvNm() {

        return srvNm;

    }



    public void setSrvNm(String srvNm) {

         this.srvNm = srvNm;

    }



    public String getSrvSchedule() {

        return srvSchedule;

    }



    public void setSrvSchedule(String srvSchedule) {

         this.srvSchedule = srvSchedule;

    }



}

 

crontabservice.sh

SRV_NM=1

SRV_SCHEDULE=0 5 2 * * ?

 

간단한 환경설정을 먼저 하였다.