2016-07-11 13 views
1

Ich habe eine Anwendung für die Gruppenplanung, die eine Caldav-Feed für Mitglieder dient. Es ist sehr einfach - auf Anfrage, greift nur kommende Ereignisse für dieses Mitglied, formatiert den Stream, gibt es zurück. Einige Mitglieder verwenden Geräte, die viel zu häufig abfragen - die Dinge werden nicht so oft aktualisiert -, also treffe ich meine Datenbank öfter als nötig.Caldav-Server - zu häufig abgefragt

Ich kann natürlich den formatierten Stream zwischenspeichern und nur aktualisieren es nicht häufiger, als ich es mag. Es wäre einfacher, jemandem, der kürzlich eine Umfrage gemacht hat, eine Antwort "frag mich später" zurückzugeben. Gibt es eine solche Antwort? Wenn ich gerade keinen Stream zurückgebe, liest der Client das als Antwort "Es gibt keine Ereignisse"?

danke!

+0

Wie genau abfragen sie? Das häufige Polling ist für den CalDAV-Server nicht wirklich ein Problem, wenn passende etag/ctag/dav-sync-Abfragen als die Abfrage ausgeführt werden (es muss nur ein paar Bytes verglichen werden ...). – hnh

Antwort

0

Sie sollten wahrscheinlich den ursprünglichen Grund beheben, warum Clients "zu häufig" abfragen. Was bedeutet "zu häufig" für dich? Senden sie ein richtiges Etag/Sync-Token, so dass das Polling billig ist?

Unabhängig davon gibt es tatsächlich einen HTTP-Status dafür: HTTP 503.

Der Server kann die Anforderung aufgrund einer vorübergehenden Überlastung oder Wartung des Servers derzeit nicht verarbeiten. Die Implikation ist , dass dies eine vorübergehende Bedingung ist, die nach einiger Verzögerung gemildert wird. Wenn bekannt, kann die Länge der Verzögerung in einem Retry-After Header angezeigt werden. Wenn kein Wiederholungsversuch angegeben wird, muss der Client die Antwort wie bei einer 500-Antwort behandeln.

Nun ist die Frage, wie viele HTTP-Clients damit umgehen tatsächlich richtig, aber ich einige wissen, die :-) tun