v4_downloader
Feed Downloader
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:
- feed not found
- feed not changed within time period (config)
- multiple files in zip
- feed empty
- feed too large (config)
- permission denied
- uri missing
- login failed
- download still running
- broken pipe
API:
- start_download(feed_id, force_download=False, uri=None, callback=None) → ACK
- 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
- Sync-API, die den Byte Strom zurückliefert, sobald der Download erfolgreich abgeschlossen wurde.
- get_feed_history(feed_id) (sollte vermutlich in den FeedCache wandern)
- zeigt an, welche Feed Versionen im FeedCache vorhanden sind
Zustände, die ein Download haben kann:
- finished
- date: in ISO-8601 Format
- checksum (optional): die MD5-Summe des heruntergeladenen Feeds
- feed_id: string
- in_progress
- 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:
- feed_cache
- messaging (optional)
- dirigent/callback (optional)
- location (feed specific)
- history (feed specific)
v4_downloader.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1