Quartz Scheduler

2024. 6. 17. 16:10IT 개발 관련(Java, Spring, JavaScript)

스케쥴러란 특정 시간에 반복적인 작업을 해야 할때 쓰인다.

 

개념

 

출처 : https://colinch4.github.io/2023-11-16/17-42-45-757208-quartz-scheduler%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%9E%91%EC%97%85-%EA%B4%80%EB%A6%AC/#:~:text=Quartz%20Scheduler%EB%8A%94%20%EC%9E%90%EB%B0%94%20%EA%B8%B0%EB%B0%98%EC%9D%98%20%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4%20%EC%9E%91%EC%97%85%20%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%9E%85%EB%8B%88%EB%8B%A4.,%ED%95%84%EC%9A%94%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%9C%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EC%A0%9C%EA%B3%B5%ED%95%A9%EB%8B%88%EB%8B%A4.

 

colin's 블로그

개발 강좌 블로그

colinch4.github.io

 

 

아래 내용은 이미 스케쥴러에 대한 개발을 끝마친 상태에서 필요한 job을 추가하는 법을 설명한다.

 

ex) Essential-job.xml

 

<schedule>

<job>

<!-- 반복할 class이름 -->

<name>RepetitiveJob</name>

<group>DEFALUT</group>

<description>설명내용</description>

<job-class>com.test.job.RepetitiveJob</job-class>

</job>

<trigger>

<cron>

<!-- trigger 이름을 정한다 -->

<name>RepetitiveJobTrigger</name>

<!-- 반복적인 작업을 할 class 이름 -->

<job-name>RepetitiveJob</job-name>

<job-group>DEFAULT</job-group>

<!-- 시간 작성 예제는 매일 오전 10시 15분 실행 -->

<corn-expression>0 15 10 * * ?</corn-expression> 

</corn>

</trigger>

</schedule>

 

ex2 ) RepetitiveJob.java

 

public class RepetitiveJob implement Job{

 

private Logger logger = LoggerFactory.getLogger(RepetitiveJob.class);

 

@Override

public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {

RepetiveJobService repeatition = new RepetiveJobService();

     try {

        repeatition.go();

    }catch(Exception e) { 

      String errorId = ErrorTraceLogger.log(e);

     logger.error("{} - RepetitiveJob Error", errorId);

   }

     logger.info("--------RepetitiveJob End--------");

 }

}