Réessayer le sous-tuilage quand la dalle source est en cours d'écriture

This commit is contained in:
Antoine Jacquin
2026-09-19 21:43:56 +02:00
parent 52f67b8e55
commit 900bf5ee89

View File

@ -823,12 +823,24 @@ def _build_subtiles(tile, offered_viz_keys, output_dir, sub_dir_name):
if not heavy_fresh:
logger.info(f" Sous-tuiles recalculées : {tile['dir_name']}/{viz_key} "
f"({len(stems)} découpages)")
img = None
for attempt in range(2):
try:
img = PILImage.open(str(src))
img.load()
break
except Exception as e:
logger.debug(f"Sous-tuilage {viz_key} impossible ({src.name}): {e}")
# Rebuild incrémental pendant un run : la dalle source
# peut être en cours d'écriture par un worker voisin
# (lecture partielle). Une tentative après une courte
# pause suffit presque toujours.
if attempt == 0:
time.sleep(2.0)
continue
logger.warning(f"Sous-tuilage {viz_key} impossible après "
f"nouvelle tentative ({src.name}) : {e}")
_fallback_full_dalle(entries, viz_key, info)
if img is None:
continue
if img.mode not in ('RGB', 'L'):
img = img.convert('RGB')