das ist noch ein Schmierzettel für Gedanken
Verwendete Komponenten:
FeedCache
Dirigent (optional)
Messaging (optional)
Übersicht: Komponente zum Download von Feeds anhand der Feed-ID.
Idee:
prüft, ob ein erneuter Download nötig ist (zeitlicher Cooldown, Checksums, etc.)
Wenn ein Download nötig ist, wird der Download über den Feed-Cache angestoßen
betreibt Error-Handling
nach erfolgreichem Abschluss, kann sich die nächste Komponente den Feed (Bytestrom) vom Feed-Cache abholen
Errors:
API:
Async-
API zum Starten des Feed-Downloads. Bei Fertigstellung wird eine Nachricht an “callback” geschickt
force_download, ermöglicht eine aktuelle Version des Feeds herunter zu laden, obwohl noch nicht alle Bedingungen für einen neuen Download erfüllt sind
uri, erlaubt das Überschreiben der uri, ansonsten wird die uri aus dem config_server übernommen
callback ist zum Überschreiben des callbacks, der aufgerufen wird, wenn der download beendet wurde.
status_download(feed_id)
ermöglicht den aktuellen Zustand des Downloads zu überprüfen: (Beispiele: {state: “finished”, date: “2016-04-12T16:09:23Z” (iso-8601), checksum: “23ac…” (md5)}, {state: “in_progress”, bytes: 1234, size: 12345, start_date: “2016-04-12T16:09:23Z”, duration: 0.23}, {state: “failed”, error_message: “…”}
cancel_download(feed_id)
Beendet den aktuellen Download für die feed_id und ermöglicht so das erneute herunterladen des feeds
get_feed(feed_id, force_download=False, uri=None, history=None) → byte strom
Zustände, die ein Download haben kann:
start_date: in ISO-8601 Format
duration: float, Sekunden seit Beginn
bytes: int, Anzahl der Bytes, die bereits heruntergeladen wurden
size (optional): die Anzahl der Bytes, die heruntergeladen werden muss, falls bekannt
feed_id: string
failed
error_message: string
feed_id: string
Config: