isekaidol-stream-noti
isekaidol-stream-noti copied to clipboard
메시지 전송 실패했다고 하지만 실제로 전송은 되는 현상
좀 어이가 없는데 send 함수에서 firebase internal error가 가끔 떠서 retry 로직 넣어놨더니 정작 메시지는 전부 전송되어 알림이 중복되는 현상 발생함. 그렇다고 retry 없에고 에러 무시하자니 진짜로 메시지 전송 안 되는 경우 있을까봐 더 지켜봐야 함. 알림 없는 것보단 여러번 오는 게 차라리 나을테니... 정 그러면 retry 횟수를 좀 줄이자.
Firebase에 문의해둠.
약간 매크로스런 답변이 오긴 했는데 아래와 같은 말이 있었음.
Honor the Retry-After header if it is included in the response from the FCM Connection Server.
일정 시간 후에 재시도 해달라는 응답이 오면 이걸 지켜달라는 말 같은데 내가 쓰는 Admin API엔 이런 옵션이 없다. 어떻게 적용할 수 있는지 다시 문의함.
근데 내부 오류가 발생했음에도 메시지가 실제로 송신되어 수신까지 되는 상황 해결에 도움은 안 될 것 같다.
여전히 그럼. send API 내에 자체 재시도 로직이 있긴 함. 자체 재시도 로직은 빼버리고 에러 무시할까?
유효하지 않은 토큰이 있어서 그럴까? dry run 같은 기능으로 주기적으로 확인해서 유효하지 않으면 구독 해지 시키고 DB에서 삭제해볼까.
유효하지 않은 토큰 삭제 기능 추가했음. 8984f1bdba5dd7fac85facfd8e7d1ba7894766ff
유효하지 않은 토큰 삭제해도 여전함.