Frage

Ich habe gerade ein Android-App-Projekt als (technisch) als (technischer) Produktmanager geerbt, der einen 5-Sekunden-Timer verwendet, um eine Remote-URL zu überprüfen, um zu sehen, ob einige von der App eingeleitete Arbeit abgeschlossen sind. Meine anfängliche Reaktion war natürlich, auf zu empfehlen, diese durch einen Push / Benachrichtigungsmechanismus zu ersetzen , vorzugsweise Androids in GCM, sodass die Arbeit von der App am Telefon entfernt und auf der Serverseite aufgestellt wird. < / p>

Überraschenderweise hatte ich Widerstand des Entwicklungsteams. Ein ehemaliger Product Manager (mein Vorgänger) scheint die Umsetzung ausdrücklich aufgefordert zu haben, auf diesen Weg zu arbeiten. Leider war er nicht groß, dass er seine Entscheidungen dokumentiert hatte. Daher muss ich nun versuchen, nachzudringen, welche Gründe zu dieser Entscheidung geführt werden können, um eine Änderung der Umsetzung zu rechtfertigen. Ich kam mit der folgenden Pro- und Contra-Liste:

Contra Push / Pro-Umfrage

    .
  1. -
  2. -
  3. serverseitige Arbeit erforderlich, um Push-Benachrichtigungen zu implementieren
  4. -
  5. Kein direkter Weg zu wissen, ob die Push-Benachrichtigung erfolgreich geliefert wurde
  6. Skalierung Push Benachrichtigung Lieferung kann ein Schmerz sein
  7. PRO PUSH / CONTRA PRÜFUNG

      .
    1. Die Arbeit wird vom Gerät entfernt
        .
      • Untere Bandwith-Nutzung
      • Unterer Batterieverbrauch
      • mehr ansprechender Anwendung und Gerät
    2. server last wird abgesenkt, wenn die Geräte nicht alle x Sekunden ausfüllen, selbst wenn sich nichts geändert (DDOs)
    3. -
    4. Push ist schneller (reagierender) als 5 Sekunden (aktueller Timer)
    5. Liefernachweis der Push-Benachrichtigung ist trivial, um mit einer Umfrage einer Remote-URL zu implementieren (hier ist es sinnvoll)
    6. Scaling Push Benachrichtigungslieferung ist ein gelöschtes Problem mit vielen Open-Source-Projekten und trivialer Implementierung mit einer Nachricht-Warteschlange

      • .
      • Gibt es andere Gründe, um Push-Benachrichtigungen zu vermeiden und die Abfrage für diese USECASE zu verwenden?
      • Gibt es andere Gründe, um das Abfragen zu vermeiden und Push-Benachrichtigungen für diese USECASE zu verwenden?
      • Alle anderen wichtigen Dinge, die ich vergessen habe?
War es hilfreich?

Lösung

Es ist keine Möglichkeit zu wissen, ob die Push-Benachrichtigung erfolgreich geliefert wurde

Sicher gibt es: Haben das Gerät Ihren Server nach Erhalt der Push-Nachricht getroffen. Möglicherweise müssen Sie das trotzdem tun, wenn die Nutzlast größer als 4k ist.

Skalierung Push Benachrichtigung Lieferung kann ein Schmerz sein

es funktioniert für ziemlich große Benutzerbasen (z. B. Remnthemilk) und das war sogar vor der XMPP-basierten persistenten Sockellösung.

Gibt es andere Gründe, um Push-Benachrichtigungen zu vermeiden und die Umfrage für diese USECASE zu verwenden?

gcm hat keine Dienstleistungsgarantie. GCM ist Android-spezifisch; Sie könnten einen Wrapper in der Umgebung betrachten, wie Amazon SNS, wenn Sie nach etwas suchen, das andere Client-Betriebssysteme umgeht. Push-Lösungen mit Dritter, wie Google, bedeutet, dass Ihre RAW-Push-Nachricht-Nutzlast für Server der Dritten sichtbar ist; Bitte verwenden Sie eine geeignete App-Level-Verschlüsselung, wenn dies ein Anliegen ist (und es sollte sein).

Gibt es andere Gründe, um das Abfragen zu vermeiden und Push-Benachrichtigungen für diese USECASE zu verwenden?

Eine Fünf-Sekunden-Umfrage macht den generationspflichtigen Weinen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top