Jikan-Retry bei 504 + Cache-Verfall fuer mittelgute Prescan-Treffer
Ampel / ampel (push) Failing after 39s
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:
+19
-10
@@ -40,16 +40,25 @@ class JikanClient:
|
|||||||
if cached:
|
if cached:
|
||||||
return cached
|
return cached
|
||||||
|
|
||||||
try:
|
# Jikan wirft sporadisch 504 (Gratis-Dienst) — ein Retry rettet die
|
||||||
response = self.session.get(
|
# meisten Fälle, mehr wäre Belästigung.
|
||||||
f"{JIKAN_BASE_URL}/anime",
|
eintraege = None
|
||||||
params={"q": title, "limit": 5, "sfw": "true"},
|
for versuch in range(2):
|
||||||
timeout=10,
|
try:
|
||||||
)
|
response = self.session.get(
|
||||||
response.raise_for_status()
|
f"{JIKAN_BASE_URL}/anime",
|
||||||
eintraege = response.json().get("data") or []
|
params={"q": title, "limit": 5, "sfw": "true"},
|
||||||
except Exception as e:
|
timeout=10,
|
||||||
print(f"Jikan API Error: {e}")
|
)
|
||||||
|
response.raise_for_status()
|
||||||
|
eintraege = response.json().get("data") or []
|
||||||
|
break
|
||||||
|
except Exception as 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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user