Abfragen sind immer dann akzeptabel, wenn Echtzeit keine Notwendigkeit ist. Was Sie sich fragen müssen, ist, warum Sie eines anstelle des anderen verwenden würden?
Der Zweck eines Push-Dienstes sind ein paar Dinge; Es kann erheblich weniger Verkehr für Sie sein, wenn es sich bei Ihren Pushs um Broadcasts handelt und ein Drittanbieter die Broadcast-Übertragung durchführt. Auf diese Weise können Sie eine Nachricht senden und Tausende empfangen. Wie Sie jedoch bemerken, ist der größte Segen eines Push-Dienstes die Echtzeit, die es ermöglicht, dass sofortige Aktualisierungen Ihre Kunden erreichen. Wenn Sie jedoch Pushs ausführen, möchten Sie wirklich nie große Datenmengen pushen, wenn Sie senden, und Sie sind auch dem Push-Dienst eines Drittanbieters ausgeliefert, den Sie verwenden (falls Sie einen verwenden).
Der Zweck einer Umfrage besteht darin, regelmäßig nach Datenunterschieden zu suchen, wobei der Aktualisierungszeitraum bis zu einem bestimmten Zeitraum einen akzeptablen SLA für Ungenauigkeiten aufweisen kann. Bei einer Umfrage müssen alle Ihre Clients die Daten regelmäßig anfordern. Dies bedeutet, dass für jeden laufenden Client eine Verbindung angefordert wird, und dass ein Live-Dienst erforderlich ist, der diese Daten genau überwachen kann, um sie den Pollern zur Verfügung zu stellen. Das Bereitstellen genauer Daten bedeutet eine gewisse Datenpersistenz, die Festplatten- und Wartungszeit in Anspruch nimmt.
Daraus können wir ersehen, dass Sie keine Bedenken haben, wenn Sie Bedenken hinsichtlich des Netzwerkverkehrs oder der Wartung eines Dienstes haben (was bedeutet, dass möglicherweise Anforderungen authentifiziert / autorisiert, protokolliert werden, die Speicherplatz beanspruchen, alle normalen Anforderungen für die Wartung eines Dienstes). Ich möchte Clients nicht zur Abfrage zwingen. Wenn der Anwendungsfall jedoch die Übertragung eines besonders großen Datensatzes erfordert oder Sie nicht an die API eines Drittanbieters gebunden sein können, die sich zeitlich ändern kann, sowie deren SLA oder Gebühren, kann trotz der Wartung ein selbst entwickeltes Abfragesystem angewendet werden Der Overhead kann erheblich höher sein. Alternativ können Sie den Dienst bereits ausführen und die Daten so beibehalten haben, dass die Abfrage eine leichte Ergänzung zu der bereits vorhandenen Infrastruktur darstellt, was die Abfrage wünschenswerter macht.
Obwohl Sie zum zentralen Punkt, den Sie machen, richtig sind; Wenn Echtzeit erforderlich ist , reicht die Abfrage nicht aus. Wenn dies nicht der Fall ist, müssen Sie nur berechnen, wie regelmäßig die Daten überprüft werden können, multipliziert mit Ihrem Kundenstamm multipliziert mit Ihrer Datensatzgröße, um zu entscheiden, ob sich die Netzwerkkosten lohnen oder ob es sich um einen Push-Service handelt Wäre besser, wenn Sie immer nur ein Änderungsereignis pushen können, mit dem sie den großen Datensatz in einem sekundären Schritt anfordern können (obwohl die Atomizität dieser Schritte abhängig von der Kritikalität der Daten möglicherweise vorsichtig sein muss).