프레임워크
** 스프링 부트 프레임워크 사용
** 어노테이션 @Scheduled 사용
** 오라클과 mysql 2개의 데이터소스에서 정보를 가져와야해서
멀티데이터소스로 구조를 잡음
=====pom.xml=====
스프링부트에서 스케쥴러를 사용하기 위해
org.springframework.batch
spring-batch-core
2.2.1.RELEASE
파이어베이스 , 푸시에 필요한 라이브러리
com.google.firebase
firebase-admin
6.7.0
io.grpc
grpc-core
io.grpc
grpc-api
io.grpc
grpc-netty-shaded
개인적으로 생각하는 무난한 구조
*시간간격과 한번에 가져올 데이터건수는 상황에 맞게 변경
[발송 배치]
5초마다 DB에 발송 대기 100건 긁어옴
토큰Id , 제목 , 내용이 없을시 실패로 디비 업데이트
발송 실패시 실패로 디비 업데이트
발송 성공시 성공으로 디비 업데이트
[발송 재처리 배치]
5초마다 DB에 실패한 발송 대기 100건 긁어옴(발송시도 3회 미만)
토큰Id , 제목 , 내용이 없을시 실패로 디비 업데이트 (발송시도횟수+1 증가)
발송 실패시 실패로 디비 업데이트(발송시도횟수+1 증가)
발송 성공시 성공으로 디비 업데이트
**에러상황을 디비로 남기니 시간대별로 실패원인을 모아서 보기가 좋았음
발송 실패로 db업데이트시 실제 에러메시지 꼭 넣기
발송상태는 대기 , 성공 , 실패 3개면 충분한거같습니다.
예외상황이나 조언부탁드립니다.!
다음에는 똑같은 구조로 메일 발송 (google smtp) 이용해서 메일 발송을 해 볼 예정입니다...
한국 우한 폐렴 , 신종 코로나바이러스 확진자 계속해서 증가 (0) | 2020.02.03 |
---|---|
이미지 리사이즈 ImageIo 지원되는 확장자 (0) | 2020.01.17 |
java 모바일 푸시 (0) | 2020.01.15 |
java open graph 구현 (0) | 2020.01.15 |
javascript 메일 , url 에 자동 링크 걸기 (0) | 2020.01.15 |