Framework/Spring
[Error]@Scheduled 중복 현상
SHXL2
2020. 8. 13. 23:03
반응형
운영 서버에 스케쥴러가 병렬로 작업되는 현상이 발생했다.
로컬에서 정상적으로 돌던 것이 왜 그러는지 의아했다.
다시 삽질이 시작됐다....
구글링을 해본 결과 비슷한 증상을 겪은 이들이 더러 있었다.
검색 결과, 원인은 2가지로 유추할 수 있었다.
1. Tomcat 설정
2. Spring 설정
결과적으로 운영 서버에 돌고 있는 Tomcat - server.xml의 Host 설정을 변경해주어 해결되었다.
원인은 하나의 Host에서 appBase와 docBase가 같은 경로를 바라보고 있었던 것이 문제였다. Tomcat에서 동일한 Web Application Context가 두 개가 작동하던 것.
[변경전]
<Host name="localhost" appBase="/Tomcat7.0/webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="/Tomcat7.0/webapps/PPPPPPP" path="/" reloadable="true" useHttpOnly = "true">
</Host>
[변경후]
<Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true">
<Context docBase="/Tomcat7.0/webapps/PPPPPPP" path="/" reloadable="true" useHttpOnly = "true">
</Host>
참고로 Spring 설정의 경우 @Component 어노테이션이 등록이 되어 있는 상태에서 context-scan이 되면 bean이 두번 선언되어 중복 실행되는 경우도 있다고 한다.
반응형