2013-09-30 5 views
0

timertask 문제에 대한 다양한 스레드가 있습니다. 그러나 스프링 스케줄러 API (3.1)에서 작동하는 내부에 대한 설명이 필요합니다.스프링 구현 - 되풀이 타이머

10 초마다 타이머를 시작해야한다는 요구 사항이 있습니다. 응용 프로그램은 클러스터 된 웹 스피어 영역에서 실행됩니다. (적어도 4 개의 jvm 노드).

여기에 배선이 있습니다.

processDataFeedMetadata 메소드에 대해 (@async)를 정의했습니다.

문제는 몇 시간 (2 또는 3 jvms가 모든 타이머를 발사하는 것을 멈추고 6 시간 후에 오작동을 시작하여 매분 4 초 - 24 타이머 발생)부터 10 초마다 올바르게 시작되는 타이머를보고 있습니다. 분당 12 회의 타이머 발생). timertask 구현 자체가 한계라는 것을 알고 있습니다. 그러나 MethodInvokingTimerTaskFactoryBean에서 ASYNC 메소드를 호출하는 경우, ASYNC 메소드를 호출하자 마자 interval 내에서 (1) 타이머가 제대로 완료되어야하는 이유는 무엇입니까? (2) 응용 프로그램 로그에서 예외가 표시되지 않고 MethodInvokingTimerTaskFactoryBean이 처리해야하며 예외가 있으면이를 소비해야합니다.

누군가가 여기에 무슨 일이 일어나고 있는지 입력 해 주셔서 감사합니다.

답변

0

에 대한 석영 스케줄러를 사용하는 것이 좋습니다?