Jikan-Retry bei 504 + Cache-Verfall fuer mittelgute Prescan-Treffer
Ampel / ampel (push) Failing after 39s

Jikan (Gratis-Dienst) wirft sporadisch 504 — ein Retry mit 2s Pause;
aktuell ist der Dienst ganz down, die Kette faellt sauber auf OMDb.
Prescan-Cache: 0.6-0.9 verfaellt nach 1 Tag, ab 0.9 nach 7 Tagen —
sonst wuerde ein frueher OMDb-Treffer bessere Quellen fuer immer blocken.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-23 21:25:10 +02:00
parent 07be54e62a
commit 37711f87c1
2 changed files with 25 additions and 12 deletions
+10 -1
View File
@@ -40,6 +40,10 @@ class JikanClient:
if cached: if cached:
return cached return cached
# Jikan wirft sporadisch 504 (Gratis-Dienst) — ein Retry rettet die
# meisten Fälle, mehr wäre Belästigung.
eintraege = None
for versuch in range(2):
try: try:
response = self.session.get( response = self.session.get(
f"{JIKAN_BASE_URL}/anime", f"{JIKAN_BASE_URL}/anime",
@@ -48,8 +52,13 @@ class JikanClient:
) )
response.raise_for_status() response.raise_for_status()
eintraege = response.json().get("data") or [] eintraege = response.json().get("data") or []
break
except Exception as e: except Exception as e:
print(f"Jikan API Error: {e}") print(f"Jikan API Error (Versuch {versuch + 1}): {e}")
if versuch == 0:
import time
time.sleep(2)
if eintraege is None:
return None return None
bester, bester_score = None, 0.0 bester, bester_score = None, 0.0
+6 -2
View File
@@ -487,6 +487,10 @@ class PreScan:
) )
# Nur ECHTE Treffer cachen: ein gecachtes "unknown" würde sonst auch # Nur ECHTE Treffer cachen: ein gecachtes "unknown" würde sonst auch
# nach Key-Eintrag/Fix ewig wieder serviert (Redis ist persistent). # nach Key-Eintrag/Fix ewig wieder serviert (Redis ist persistent).
if confidence >= 0.6: # Mittelgute Treffer verfallen nach einem Tag — falls eine bessere
cache_set(cache_key, result.to_dict()) # Quelle (Jikan-504 vorbei, TMDB-Key neu) später mehr weiß.
if confidence >= 0.9:
cache_set(cache_key, result.to_dict(), expire=7 * 86400)
elif confidence >= 0.6:
cache_set(cache_key, result.to_dict(), expire=86400)
return result return result