Notice
Recent Posts
Recent Comments
Link
반응형
이로
201222 쓰레드 다중처리 본문
반응형
주어진 상황
- 스프링 부트, 그래들, 마이바티스를 사용하는 프로젝트이다.
- '관리시스템 설정 테이블'은 1200만개의 데이터가 존재하며, 해당 데이터들은 수시로 데이터 내용이 변경된다.
- 00시00분 시점의 '관리시스템 설정 테이블'에 있는 데이터를 txt 파일로 저장하려한다.
- 하나의 텍스트 파일은 1000개의 라인으로 구성해야한다.
- 데이터는 시간순으로 순차정렬해야하며, 파일명은 각 파일의 첫 데이터와 마지막 데이터의 시간으로 한다. [첫 시간 - 마지막 시간.txt]
- 로그파일 생성은 사용자가 웹 페이지에서 "로그 생성" 버튼을 클릭한 순간 진행되며, 서버에서 비동기로 파일생성 작업을 진행해야 하며, 사용할 수 있는 Thread는 10개이다.
- 사용자가 웹 페이지에서 로그생성을 누르지않으면 로그파일이 생성되지 않는 날도 존재한다.
내가 생각한 로직
1. DB에서 생성해야 할 데이터의 총 개수를 파악
2. 게시판의 페이징처리와 같게 1000개 단위로 페이징을 한다.
3. Queue에 페이징 번호를 쌓는다.
4. 10개의 각 쓰레드에서 Queue에 접근하여 페이징 번호를 가져가 각 쓰레드별로 DB에서 데이터를 1000개씩 받아 파일을 생성한다.
발생할 수 있는 이슈
1. 1200만개의 데이터에 rownum을 부여해 1000개 단위로 페이징 처리를 하는게 맞는 선택인가?
반응형
'컴퓨터 > 개발일기' 카테고리의 다른 글
HTML IMG 태그에 경로없이 이미지 전송 (HttpServletResponse 사용) (0) | 2021.01.04 |
---|
Comments