반응형
업무를 하며 특정 시간대에 특정 테이블에 업데이트를 해야하는 건이 생겼다. 기존에 개발된 형식이 있어서 그대로 따라하면 금방 해결된다. 금방 해결되지만 어떻게 흘러가는지 확인하고 설계한 다음 개발을 해야 시행착오를 면할 수 있다. 그림은 간단하다.
아래 그림은 대략적인 흐름이다.
데이터도 있고 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 * * ?
간단한 환경설정을 먼저 하였다.
'모바일환경코딩 > java' 카테고리의 다른 글
[파일내용 합치기] java로 파일내용 합치는 간단한 방법 (0) | 2022.05.20 |
---|---|
[모바일환경코딩] java NULL 공백 체크 용 공통함수 작성. (0) | 2021.01.11 |