Spring
SpringBoot daemon application 만들기
아이티.파머
2021. 4. 29. 20:02
반응형
SpringBoot daemon application 만들기
Spring 을 사용하면서 데몬형태로 운영하기 위해서는 web module을 제거해주고 Start 해준다.
혹은 제거 하지 않고도 프로퍼티에서 설정을 변경 하여 데몬 형태로 만들 수 있다.
web-application-type 타입을 none로 변경하여 데몬 형태로 만든다. (내장 웹서버를 사용하지 않음)
spring:
devtools:
restart:
enabled: false
main:
**web-application-type: none**
어째뜬 web-application-type 을 변경 하거나, web 모듈을 제거 하고, 계속 데몬이 유지되게 하려면 Thread 를 하나 생성해서 프로세스를 살려둔다. (혹은 rabbitMQ, kafka 와같은 backgrould thread 를 설정 한다.)
CommandLineRunner 를 상속받아 스프링부트 서비스 실행시 Background Thread를 실행 시켜 프로세스를 유지 한다.
@Component
@Slf4j
public class DaemonRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
Thread daemonThread = new Thread(() -> {
while (true) {
try {
log.trace("Daemon thread ..... live");
TimeUnit.MILLISECONDS.sleep(500);
} catch (InterruptedException e) {
log.error("Daemon Thread Error = {} ", e.getMessage());
break;
}
}
});
// spring boot 의존성에서 web 제거후
// Thread 를 시작하여 daemon 으로 사용.
daemonThread.start();
}
}
반응형