back end/java

spring 에서 cron scheduler 를 disable 하는 방법

노루아부지 2022. 12. 21. 23:59
반응형

Spring 또는 Spring boot를 사용하면서 batch 작업을 하기 위해 cron scheduler를 사용하는데요.

프로그램을 수정하지 않고 설정만으로 cron scheduler를 disable 해야 하는 경우가 있습니다.

 

1. cron 옵션 처리

당연한 말이지만 설정으로 cron을 disable 하려면 cron이 옵션처리가 되어있어야 합니다.

 

1.1. application.properties 설정

다음과 같이 application.properties에 옵션을 추가합니다.

이 설정은 매일 11시에 batch를 실행하라는 것입니다.

config.cronExpression=0 0 11 * * *

 

1.2. @Scheduled annotation 변경

application.properties의 config.cronExpression의 값을 사용하고, 만약 값이 없으면 default 값을 사용하도록 하는 설정입니다.

@Scheduled(cron = "${config.cronExpression:0 0 11 * * *}")

 

 

2. disable 하는 방법

방법 1. 2099년으로 설정

당연하지만, 2099년으로 하면 날짜가 아직 안됐기 때문에 실행이 되지 않습니다.

config.cronExpression=59 59 23 31 12 ? 2099

 

방법 2. "-" 설정

spring 5.1.0부터 "-"을 사용할 수 있습니다.

config.cronExpression="-"
728x90
반응형
loading