반응형
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();
}
}
반응형
'Spring' 카테고리의 다른 글
Connection is not available, request timed out after 10000ms. (Unable to acquire JDBC Connection) (0) | 2021.07.07 |
---|---|
Intellij SNAPSHOT 파일 최신 적용 (0) | 2021.05.20 |
Spring Muiltiple DataSource (0) | 2021.04.29 |
ehcache attribute (0) | 2017.07.11 |
Spring redirect POST 전송 RedirectAttributes Parameter (0) | 2017.05.31 |