목적
- 발송 요청 유입 된 메시지에 대해서 sender의 ntius_linker로 발송을 요청한다.
- 발송 요청이 실패하면 custIFDaemon으로 report 요청을 날린다.
흐름도
flowchart TD
외부 -- HTTP [POST] /sendAppPush--> CustIFDaemon
CustIFDaemon -- HTTP [POST] /customif/push --> SendDaemon
CustIFDaemon -- DB적재 --> NP_PUSH_SEND
SendDaemon -- DB확인 --> NP_PUSH_SEND
NP_PUSH_SEND -- if REQ_STAT_CD_SEND=1\\n응답 --> SendDaemon
SendDaemon -- 1. 발송 데이터 가공\\n2. 필요 시 Device 정보 조회\\n3. 필수 마라미터 체크\\n4. 전송 데이터 확인\\n5. Receive server prefix 설정 --> 검증
검증 -- 검증 성공 --> 발송요청
검증 -- 검증 실패\\nHistoryQueue에 결과 적재 --> HistoryRealTimeThread
발송요청 -- 1. 먼저 요청\\n2.첫 요청 반환 코드가 S3001 or S4003(REDIRECT) 다시 요청\\nHTTP [POST] / --> ntius_linker
발송요청 -- 발송 요청 성공 or DB 중복건(S4011)\\nHistoryQueue에 결과 이력 적재 --> HistoryRealTimeThread
HistoryRealTimeThread -- DB 결과 저장 --> NP_PUSH_SEND_LOG
HistoryRealTimeThread -- if msgStatTpCd='E' --> 처리결과실패
처리결과실패 -- 우회 요청 테이블 저장 --> NP_PUSH_CUST_BYPASS_SEND
처리결과실패 -- if senderMsgId != null\\nHTTP [POST] /customif/report --> CustIFDaemon
ntius_linker -- 결과 반환 --> 발송요청
ntius_linker -- AOS(msg type : C , F) --> ntius_fcm
ntius_linker -- AOS --> ntius_sender
ntius_linker -- IOS --> ntius_apns
초기화
- prefixMap과 processConf 파일을 통해 설정 값 세팅
- Queue 초기화
- Thread 초기화
- Database 초기화
- 스케쥴러 초기화
- code 초기화
- api route 설정
내부 프로세스
sequenceDiagram
title CustomIFPushService(HTTP 요청 데이터 적재)
autonumber
participant CID as CustIFDaemon
box Purple SendDaemon
participant SD as SendDaemon
participant SRTQ as SendRealTimeQueue
end
CID ->> +SD : 메시지 발송 요청
SD ->> SD : 파싱 및 값 세팅
SD ->> SRTQ : 요청 메시지 적재
SD -->> -CID : 결과 응답