User Tools

Site Tools


v4_downloader

Feed Downloader

FIXME 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