La finestra temporale delle notifiche push può essere il doppio di quel tempo

Dato che FINALMENTE abbiamo le notifiche push su PWA per iOS :tada: stavo esaminando il ritardo che viene applicato prima che una notifica push venga inviata, perché sembrava richiedere più tempo del previsto.

Il codice controlla se un utente è stato online di recente (meno di push_notification_time_window_mins fa) e se lo è stato, la notifica viene ritardata di 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

Ma questo significa che in pratica può richiedere fino al doppio del tempo previsto, poiché push_notification_time_window_mins viene applicato sia nel controllo online che nel ritardo.

Esempio:

push_notification_time_window_mins è impostato su 10

13:00
Lascio il sito
13:10
Succede qualcosa che attiva una notifica.
Il codice controlla se ero online meno di 10 minuti fa.
Lo ero, quindi la notifica verrà inviata alle 13:20.

12:59
Lascio il sito
13:10
Succede qualcosa che attiva una notifica.
Il codice controlla se ero online meno di 10 minuti fa.
Non lo ero, quindi la notifica verrà inviata immediatamente, alle 13:10.

Quindi una differenza di un minuto nel mio tempo online può cambiare la consegna della notifica di quasi push_notification_time_window_mins. Soprattutto se l’impostazione viene modificata in un valore più alto, ciò può fare una differenza significativa.

Mi aspetterei che il ritardo sia push_notification_time_window_mins - (now - seen_since)

8 Mi Piace

Questo dovrebbe risolvere il problema

9 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 3 giorni. Non sono più consentite nuove risposte.