Télécharger la pyramide du worker sans pause, garder la pause pour le rendu local du Pi

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Antoine Jacquin
2026-09-27 13:50:49 +02:00
parent 6e1b26986c
commit c5097e21a0
3 changed files with 32 additions and 6 deletions

View File

@ -318,7 +318,9 @@ def background_scan(output_dir=None):
def _bg_process_one():
"""Traite une tuile de la file, sinon une source à rapatrier. Vrai si
un travail a été fait (téléchargement, rendu ou rapatriement).
un travail a été fait : "telechargee" pour une tuile téléchargée de
l'amont (enchaînée sans pause : le worker encaisse), True pour un rendu
local ou un rapatriement de source (suivis de la pause).
Tuiles d'abord : légères et visibles tout de suite, elles ne doivent pas
attendre des milliers de sources (utiles aux seuls forts zooms rendus à
@ -355,7 +357,7 @@ def _bg_process_one():
tiles_mod.tile_cache_path(OUTPUT_DIR, layer, z, x, y,
conf["scale"], conf["fmt"]), data)
_bg["stats"]["telechargees"] = _bg["stats"].get("telechargees", 0) + 1
return True
return "telechargee"
# Amont absent ou éteint : rendu local depuis les sources gardées (autonomie).
tiles_mod.get_tile(OUTPUT_DIR, layer, z, x, y, conf["scale"], conf["fmt"])
_bg["stats"]["rendues"] += 1
@ -373,6 +375,8 @@ def _bg_worker():
except Exception as e: # noqa: BLE001 — une tuile n'arrête pas la file
logger.warning(f"Maintenance des tuiles : rendu impossible ({e})")
rendered = False
if rendered == "telechargee":
continue # téléchargement : aucun calcul local, pas de pause
if rendered:
_bg["stop"].wait(_bg_conf()["pause"]) # cadence : un rendu, une pause
else:
@ -430,7 +434,7 @@ def start_background():
logger.info(f"Maintenance des tuiles active : z ≤ {conf['max_z']} "
f"@{conf['scale']}x {conf['fmt']}, scan toutes les "
f"{conf['interval']:.0f} s, pause {conf['pause']:.1f} s "
f"entre rendus")
f"entre rendus locaux (téléchargements sans pause)")
def stop_background():