1.1 KiB
1.1 KiB
TASK 7:
Wir haben nun einmal einen (noch nicht perfekten aber funktionstüchtigen) Workflow, in welchem wir die Daten von einer externen API (Overpass) holen, daraus POI-Objekte machen und diese als .json auf unserer Festplatte speichern.
Als nächstes versuchen wir den Code zu "parallelisieren" (ThreadPool):
- wir bilden ein Modul config.py und lagern dort unseren Konfigurationscode aus
- Timer einbauen (Dekorator) -> ist noch unbekannt: zeige ich vor
- Code nach vorgegebenem Schema "concurrent" machen -> findet heraus, was in unserem Beispiel der Adapter ist
- optional: Lock verwenden
from concurrent.futures import ThreadPoolExecutor, as_completed
adapter = CodewarsAdapter()
usernames = [" alice ", "bob", " carol ", " dave "]
with ThreadPoolExecutor(max_workers=4) as pool:
futures = {pool.submit(adapter.get_user, n): n for n in usernames}
for future in as_completed(futures):
name = futures[future]
try:
user = future.result()
print(f"{name}: {user.honor}Honor")
except Exception as exc:
print(f"{name}: Fehler -- {exc}")