La fenêtre horaire des notifications push peut être le double de ce temps

Puisque nous avons ENFIN les notifications push sur PWA iOS :tada: J’examinais le délai appliqué avant l’envoi d’une notification push - car cela semblait prendre plus de temps que prévu.

Le code vérifie si un utilisateur était en ligne récemment (il y a moins de push_notification_time_window_mins minutes) et s’il l’était, la notification est retardée de 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

Mais cela signifie qu’en pratique, cela peut prendre jusqu’à deux fois plus de temps que prévu, car push_notification_time_window_mins est appliqué à la fois dans la vérification de présence en ligne et dans le délai.

Exemple :

push_notification_time_window_mins est défini sur 10

13:00
Je quitte le site
13:10
Quelque chose se produit qui déclenche une notification.
Le code vérifie si j’étais en ligne il y a moins de 10 minutes.
Je l’étais, donc la notification sera envoyée à 13:20.

12:59
Je quitte le site
13:10
Quelque chose se produit qui déclenche une notification.
Le code vérifie si j’étais en ligne il y a moins de 10 minutes.
Je ne l’étais pas, donc la notification sera envoyée immédiatement, à 13:10.

Ainsi, une différence d’une minute dans mon temps de connexion peut modifier la livraison de la notification de près de push_notification_time_window_mins. Surtout si le paramètre est modifié pour une valeur plus élevée, cela peut faire une différence significative.

Je m’attendrais à ce que le délai soit de push_notification_time_window_mins - (maintenant - seen_since)

8 « J'aime »

Cela devrait résoudre le problème

9 « J'aime »

Ce sujet a été automatiquement fermé après 3 jours. Les nouvelles réponses ne sont plus autorisées.