목적


  1. 발송 요청 유입 된 메시지에 대해서 sender의 ntius_linker로 발송을 요청한다.
  2. 발송 요청이 실패하면 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
	

초기화

  1. prefixMap과 processConf 파일을 통해 설정 값 세팅
  2. Queue 초기화
  3. Thread 초기화
  4. Database 초기화
  5. 스케쥴러 초기화
  6. code 초기화
  7. 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 : 결과 응답