fix(viewer+backend): cache sorties TTL 10min + /sorties/local + viewer non-bloquant
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user