아직 구현된건 아니고 생각일뿐.

문제) 모든 유저에게 오후 1시에 푸시 메시지를 보내고 싶다. 그런데 세계의 각 지역은 당연히 시간이 다르거니와 같은 국가라도 시간이 다르며 또한 섬머타임으로 인해 같은 지역이라 해도 시간이 변동된다.


방법)

1. 유저는 회원가입할때 아래 정보를 서버에게 알려준다.

 - utc_offset(dst time적용되지 않았을때 offset), dst_offset(dst 적용되었을때 offset), dst_starttime, dst_endtime


2. 서버에서 푸시 예약 등록을 할때 13시 정보에 대해서 모든가능한 offset에 대해서 schedule 예약을 해둔다.

예) -12 ~ +14 까지.

이중에서 offset +2 가 보내질 시간이 되면 디비에서 다음에 해당하는 그룹을 가져와서 푸시를 보낸다.

그룹 1) utc_offset 이 2 이고 start, end time이 없는 유저 그룹

그룹 2) dst_offset 이 2 이고 now가 start, end time에 포함되는 그룹


근데 start end time 필드를 넣어놓고 쿼리 때리는게 넘 느려보인다.. 


블로그 이미지

시간을 거스르는자

ytkang86@gmail.com

,