fix(viewer+backend): cache sorties TTL 10min + /sorties/local + viewer non-bloquant

This commit is contained in:
Poulpe
2026-04-27 22:02:21 +00:00
parent b962997008
commit 31b5a221b8
3 changed files with 109 additions and 24 deletions

View File

@@ -122,7 +122,7 @@ async def run_pipeline(sortie_id: str, queue: asyncio.Queue) -> None:
async def scan_sorties() -> list[dict]:
"""List available sorties on GDrive via rclone lsd."""
"""List available sorties on GDrive via rclone lsd (lent ~30s)."""
result = subprocess.run(
["rclone", "lsd", GDRIVE_REMOTE],
capture_output=True, text=True
@@ -135,3 +135,15 @@ async def scan_sorties() -> list[dict]:
processed = (OUTPUT_DIR / name / "processed" / "usv.json.gz").exists()
sorties.append({"id": name, "processed": processed})
return sorties
def scan_sorties_local() -> list[dict]:
"""List sorties already synced locally in OUTPUT_DIR (instantané, pas rclone)."""
if not OUTPUT_DIR.exists():
return []
sorties = []
for d in sorted(OUTPUT_DIR.iterdir()):
if d.is_dir():
processed = (d / "processed" / "usv.json.gz").exists()
sorties.append({"id": d.name, "processed": processed})
return sorties