Framework/Spring

[ERROR]@Scheduled 중복 현상

  • -
반응형

운영 서버에 스케쥴러가 병렬로 작업되는 현상이 발생했다.

로컬에서 정상적으로 돌던 것이 왜 그러는지 의아했다.

 

다시 삽질이 시작됐다....

구글링을 해본 결과 비슷한 증상을 겪은 이들이 더러 있었다.

검색 결과, 원인은 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이 두번 선언되어 중복 실행되는 경우도 있다고 한다.

 

 

Quartz의 이중실행 증상

序. 로컬에서의 테스트에서는 극히 정상적으로 quartz스케쥴러가 작동하였고, 이를 테스트서버와 실서버로 옮겼을때는 동시에 두번씩 동작하는 문제가 발생했다. 세 서버의 Tomcat/Spring/Quartz의 버�

blog.ajkuhn.com

 

스프링 스케쥴러 구현하기

application-context.xml 에 다음을 밑줄 친 부분을 추가한다. 그리고 아랫 부분도 추가해준다. xml 설정은 이걸로 끝난다. 매우 간단. 다음은 구현부인데 구현부도 간단하다. @Component public class Shceduler..

triest.tistory.com

 

OKKY | 안녕하세요.스프링 스케쥴러 중복실행 문제 ㅠㅠ

spring 버전은 3.0 사용하고있습니다. xml 설정은  task:scheduler id jobScheduler pool-size 10 / task:annotation-driven scheduler jobScheduler / java 에서는 / Scheduled 사용해서 정말 간단하게 돌리고있습니다. 근데 문제��

okky.kr

 

spring @Scheduled 두번 실행 되는 현상

이번에 개발하나 하는데 @Scheduled 부분이 두번씩 호출되는 상황이 발생 했다. 싱글톤으로 생성되는녀석이 두번씩 호출되서 이해가 안됐는데 프로젝트 내에 spring이랑 spring-security에서 task:annotation

niees.tistory.com

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.