푸시 알림 시간 창(분)은 해당 시간의 2배가 될 수 있습니다

드디어 iOS PWA에서 푸시 알림이 지원되기 시작했네요 :tada: 그래서 푸시 알림이 전송되기 전에 적용되는 지연 시간을 살펴봤습니다. 예상보다 더 오래 걸리는 것 같아서요.

코드는 사용자가 최근( push_notification_time_window_mins 이내) 온라인이었는지 확인하며, 만약 그렇다면 알림이 push_notification_time_window_mins 동안 지연됩니다.

      if user.seen_since?(SiteSetting.push_notification_time_window_mins.minutes.ago)
        Jobs.enqueue_in(
          SiteSetting.push_notification_time_window_mins.minutes,
          ...
        )
      else
        Jobs.enqueue(:send_push_notification, user_id: user.id, payload: payload)
      end

하지만 이는 실제로는 push_notification_time_window_mins가 온라인 확인과 지연 모두에 적용되므로, 예상보다 최대 2배까지 오래 걸릴 수 있음을 의미합니다.

예시:

push_notification_time_window_mins가 10으로 설정되어 있다고 가정합니다.

13:00
사이트를 나갑니다.
13:10
알림을 트리거하는 일이 발생합니다.
코드가 10분 이내에 온라인이었는지 확인합니다.
네, 그러므로 알림은 13:20에 전송됩니다.

12:59
사이트를 나갑니다.
13:10
알림을 트리거하는 일이 발생합니다.
코드가 10분 이내에 온라인이었는지 확인합니다.
아니요, 그러므로 알림은 즉시, 13:10에 전송됩니다.

따라서 온라인 상태의 1분 차이로 인해 알림 전송 시점이 거의 push_notification_time_window_mins만큼 달라질 수 있습니다. 특히 설정 값이 더 높은 값으로 변경될 경우 그 차이가 상당할 수 있습니다.

지연 시간이 push_notification_time_window_mins - (now - seen_since)가 되어야 한다고 기대합니다.

8개의 좋아요

이것으로 해결될 것입니다

9개의 좋아요

이 주제는 3일 후 자동으로 닫혔습니다. 더 이상 새 답변을 남길 수 없습니다.