Fix: Anniversary-Job + RASFF 404, SW by-v1120
Aus Container-Log gefundene Backend-Errors: 1. _job_anniversary_reminders: 'no such column: d.user_id' diary-Tabelle hat keine user_id — User-Bezug geht über dogs.user_id. → JOIN dogs ON dogs.id = d.dog_id ergänzt + SELECT dogs.user_id. Job läuft täglich 09:00 — war seit Tag X kaputt, kein Push für Jahrestage gesendet. 2. RASFF API 404 (EU Rapid Alert System for Food and Feed): webgate.ec.europa.eu/rasff-window/backend/public/... ist umgezogen. → HTTPStatusError mit 404/410/503 wird jetzt nur als WARNING geloggt (vorher ERROR → Error-Digest spammte täglich). Fallback ist eh schon ein leeres Array, App läuft weiter. EU-Endpoint-URL muss nochmal recherchiert werden, dann RASFF_URL aktualisieren — Folge-Sprint.
This commit is contained in:
parent
c7a84438d1
commit
26b515cede
7 changed files with 35 additions and 18 deletions
|
|
@ -49,12 +49,27 @@ async def list_recalls(q: str = ""):
|
|||
# Interne Hilfsfunktion: RASFF API abfragen
|
||||
# ------------------------------------------------------------------
|
||||
async def fetch_rasff_recalls() -> list[dict]:
|
||||
"""Fragt die RASFF API ab und gibt eine Liste normalisierter Einträge zurück."""
|
||||
"""Fragt die RASFF API ab und gibt eine Liste normalisierter Einträge zurück.
|
||||
|
||||
Hinweis: Die EU hat die API mehrfach umgezogen — wenn der Endpoint
|
||||
404 oder andere persistent fehler liefert, geben wir [] zurück und
|
||||
loggen nur als Warning (nicht Error), damit das Error-Digest nicht
|
||||
täglich spammt.
|
||||
"""
|
||||
try:
|
||||
async with httpx.AsyncClient(timeout=10.0) as client:
|
||||
resp = await client.get(RASFF_URL, params=RASFF_PARAMS)
|
||||
resp.raise_for_status()
|
||||
data = resp.json()
|
||||
except httpx.HTTPStatusError as e:
|
||||
if e.response.status_code in (404, 410, 503):
|
||||
# API umgezogen oder temporär unten — Warning, kein Error
|
||||
logger.warning(
|
||||
f"RASFF API liefert {e.response.status_code} (Endpoint vermutlich umgezogen) — überspringe."
|
||||
)
|
||||
else:
|
||||
logger.error(f"RASFF API-HTTP-Fehler: {e}")
|
||||
return []
|
||||
except Exception as e:
|
||||
logger.error(f"RASFF API-Fehler: {e}")
|
||||
return []
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue