Ya que FINALMENTE tenemos notificaciones push en PWA de iOS
Estaba investigando el retraso que se aplica antes de que se envíe una notificación push, porque parecía que tardaba más de lo esperado.
El código verifica si un usuario estuvo en línea recientemente (hace menos de push_notification_time_window_mins minutos) y si lo estuvo, la notificación se retrasa push_notification_time_window_mins minutos.
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
Pero esto significa que en la práctica puede tardar hasta el doble de lo esperado, ya que push_notification_time_window_mins se aplica tanto en la verificación en línea como en el retraso.
Ejemplo:
push_notification_time_window_mins se establece en 10
13:00
Salgo del sitio
13:10
Sucede algo que activa una notificación.
El código verifica si estuve en línea hace menos de 10 minutos.
Estuve, así que la notificación se enviará a las 13:20.
12:59
Salgo del sitio
13:10
Sucede algo que activa una notificación.
El código verifica si estuve en línea hace menos de 10 minutos.
No estuve, así que la notificación se enviará inmediatamente, a las 13:10.
Por lo tanto, una diferencia de un minuto en mi tiempo en línea puede cambiar la entrega de la notificación en casi push_notification_time_window_mins. Especialmente si la configuración se cambia a un valor más alto, esto puede marcar una diferencia significativa.
Esperaría que el retraso fuera push_notification_time_window_mins - (ahora - seen_since)