Janela de tempo de notificação push em minutos pode ser o dobro desse tempo

Como agora FINALMENTE temos notificações push em PWAs do iOS :tada: Eu estava investigando o atraso que é aplicado antes que uma notificação push seja enviada - porque parecia demorar mais do que o esperado.

O código verifica se um usuário esteve online recentemente (há menos de push_notification_time_window_mins minutos) e, se esteve, a notificação é atrasada em 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

Mas isso significa que, na prática, isso pode levar até o dobro do tempo esperado, já que o push_notification_time_window_mins é aplicado tanto na verificação de online quanto no atraso.

Exemplo:

push_notification_time_window_mins está definido como 10

13:00
Saio do site
13:10
Algo acontece que dispara uma notificação.
O código verifica se estive online há menos de 10 minutos.
Estive, então a notificação será enviada às 13:20.

12:59
Saio do site
13:10
Algo acontece que dispara uma notificação.
O código verifica se estive online há menos de 10 minutos.
Não estive, então a notificação será enviada imediatamente, às 13:10.

Portanto, uma diferença de um minuto no meu tempo online pode alterar a entrega da notificação em quase push_notification_time_window_mins. Especialmente se a configuração for alterada para um valor maior, isso pode fazer uma diferença significativa.

Eu esperaria que o atraso fosse push_notification_time_window_mins - (agora - seen_since)

8 curtidas

Isso deve corrigir o problema

9 curtidas

Este tópico foi fechado automaticamente após 3 dias. Novas respostas não são mais permitidas.