2017-10-25 8 views
1

나는 제이보스 10.10 내에서 실행되는 싱글 톤 EJB의 EJB 타이머 일정이 대개. 그러나 2 분마다 비즈니스 요구로 인해 메소드 시간 초과가 1 초 이상 소요됩니다.피 타이머 중복은 제이보스

문제 :

같은 로그 메시지 출력 제이보스 각각 이분 :

(EJB 기본 - 1) WFLYEJB0043 : 타이머 []의 이전 실행이 진행되는가 스킵을 이에서 예약 된 실행은 다음과 같이 중복됩니다.

메시지가 의미하는 바는 분명합니다. 이전 타이머가 다음 실행이 시작되고 겹침이 발생하기 전에 완료되지 않았습니다.

또한 오버랩은 업데이트중인 밑에있는 데이터 구조에서 동시 발생 문제를 제기합니다.

내 질문 :

1 - 타이머가 느린 중첩/동시 갱신을 피할 때 어떻게 경우 다음 일정을 버리려면?

2 - 불가능할 경우 로그 메시지를 피하는 방법 중복 된 일정을 삭제합니까?

덧붙여서, 나는 두 가지 다른 스케줄 (1 초와 120 초)로 업데이트 방법을 깨뜨리는 것에 대해 생각했습니다. 그러나 업데이트 방법을 깨뜨리는 것은 업데이트하는 동안 전체 데이터 구조를 파괴하는 것을 의미합니다. 어쨌든 복잡하고 천재적입니다.

도움을 주시면 감사하겠습니다.

답변

0

"타이머"콩은 어떤 종류입니까? 나는 그것을 @Singleton으로 만드는 것이 당신의 경우에 충분할 것이라고 생각합니다. 그것이 Singleton이 될 경우, 하나 이상의 쓰레드에 의해 메소드에 접근 할 방법이 없다.

+0

답장을 보내 주셔서 감사합니다. 나는 빈 타입과 코드의 다른 세부 사항들로 나의 질문을 업데이트했다. – Doleron