반응형
JobXXX란 클래스는 Quartz 라이브러리를 통해 0.5초에 한번 실행된다.
명령내역 변경이력 테이블에서 처리되지 않은 데이터를 가져와 시간 순서대로 하나씩 처리를 해야하는데
이 때 맨 처음 데이터가 데이터의 결함등으로 처리되지 못하고 Queue를 꽉 틀어막을 수 있다
이를 해결하기 위해 DB에서 데이터를 가져온 후 이를 장비별로 분류하여 Queue에 담아 처리한다.
데이터를 담는 자료구조를 List<VO>에서 HashMap<장비명, Queue<VO>>로 변경했다
이전 방식
변경된 방식
이전 방식이 한줄로 처리됐다면, 변경된 방식에서는 장비별로 각자의 처리라인이 생겼다
이렇게 함으로써 중간 처리과정이 복잡해졌지만 안정성이 높아졌다고 할 수 있다
복잡해진 처리 과정
1. 데이터가 있는지 확인할 때 각 큐 별로 비어있는지 확인이 필요
2. 데이터를 DB에서 읽어와 추가할 때 분류 필요
3. 삭제할 때 큐 별로 모두 접근해야 함
4. 데이터를 가져올 때 큐 별로 접근해야 함
반응형
'백엔드 > Java' 카테고리의 다른 글
람다 인터페이스들 (0) | 2018.06.26 |
---|---|
람다와 함수형 인터페이스 (0) | 2018.06.25 |
이너 클래스/로컬 클래스/익명 클래스/람다 (0) | 2018.06.21 |
람다의 표현식 (0) | 2018.06.06 |
람다 (0) | 2018.06.06 |
댓글