scheduling

🌿 Spring

메일 발송 - 스케쥴링 간 문제 해결 with Async

스케쥴링의 결과물인 경매 작품의 상태 변화에 따라 사용자에게 메일을 발송하는 작업을 테스트했을 때 발생하는 문제를 위 사진으로 간략하게 나타내었다. (위 사진의 결과는 메일 발송 메소드를 Thread.sleep(500)으로 처리한 결과이다.) 위 사진에서처럼 160개의 상태 변화가 필요한 작품들에 대해 스케쥴링을 적용하였고, 한 작품당 한 사람에게 메일을 보낸다고 가정했을 때 100개의 작품에 스케쥴링을 적용한 후 메일을 보내면 50초의 시간이 걸리고 그 시간 동안 다른 작업(그림의 상태 변경)은 Block되는 현상을 관찰할 수 있었다. 서비스 장애이지 않을 수 없다. 이러한 장애를 비동기를 이용하여 해결해보았다. 1) 코드 변경점 1-1) Application @Slf4j @EnableSchedulin..

🌿 Spring

등록된 미술품 상태 변경 with Scheduling

피카소 경매 사이트는 사용자가 경매 항목을 올리면 관리자가 그 경매 항목에 대해 승인을 한 후 경매가 등록된다. (위 사진에서는 관리자 승인 단계가 생략되어있다.) 승인을 받은 경매 작품은 사용자가 지정한 경매 시작 일자에 맞추어 경매 예정 -> 경매 진행중 과 같이 상태가 바뀐다. 이러한 작업을 관리자가 모두 전담하기엔 너무나도 공수가 컸고 DB 내의 Event Schedular를 이용하기에는 DB 서버의 무게가 무거워질 수 있다고 판단되어 서버 단의 스케쥴링을 이용하여 경매 작품들의 상태값을 변경하기로 결정했다. 스케쥴링의 방식에 대해서는 이후 작성할 스케쥴링 코드에서 자세히 서술할 것이다. 0) 사전 설정 @Slf4j @EnableScheduling // Schedule사용을 위한 Annotatio..

sh_bong
'scheduling' 태그의 글 목록