안녕하세요.
아래의 소스와 같이 발송을 하고 있습니다.
유저리스트를 가지고 와서 for 문으로 돌려 발송요청을 합니다.
그리고 성공하면 "발송성공"이라고 콘솔에 찍어주고 있습니다.
그리고 for문이 끝나면 DB에 발송완료라고 값을 변경해 주는데요.
이상한게 분명 디비에는 false로 들어가 있는데 콘솔에는 계속 "발송성공"이라고 올라오고 있습니다.
아무리봐도 너무 이사해서 혹 GCM에 깊은 뜻이 있는지 몰라 이렇게 문의를 드립니다.
조언 부탁드립니다.
for(int j=0; j< userInfoList.size(); j++){//발송 유저 리스트
User userInfo = (User)userInfoList.get(j);
// 단말 API KEY
String myApiKey = ".....";
int retries = 5; //재시도횟수
Sender sender = new Sender(myApiKey);
// 전달 메시지 셋팅
Message message2 = new Message.Builder()
.timeToLive(1800) //메시지 소멸까지 걸리는 시간
.delayWhileIdle(false) //메시지 과부하시 대기유무,기본은 트루
.addData("type","1")
.addData("title", URLEncoder.encode("어플명","UTF-8"))
.addData("msg", URLEncoder.encode(pushInfo.getContents(), "UTF-8"))
.addData("ticker", URLEncoder.encode(pushInfo.getContents(), "UTF-8"))
.build();
Result result;
try{
result = sender.send(message2, userInfo.getDeviceToken(), retries);
if (result != null) {
//결과 처리
if(result.getMessageId() != null) {
//푸시 전송 성공
}
} else {
String error = result.getErrorCodeName();
System.out.println("[ERROR]"+error);
}
System.err.println("발송성공");
} catch (IOException e) {
e.printStackTrace();
}
}
//발송전달후 DB에 발송완료로 변경
pushUseCdUpdate(false);