Réessayer le sous-tuilage quand la dalle source est en cours d'écriture
This commit is contained in:
@ -823,12 +823,24 @@ def _build_subtiles(tile, offered_viz_keys, output_dir, sub_dir_name):
|
|||||||
if not heavy_fresh:
|
if not heavy_fresh:
|
||||||
logger.info(f" Sous-tuiles recalculées : {tile['dir_name']}/{viz_key} "
|
logger.info(f" Sous-tuiles recalculées : {tile['dir_name']}/{viz_key} "
|
||||||
f"({len(stems)} découpages)")
|
f"({len(stems)} découpages)")
|
||||||
try:
|
img = None
|
||||||
img = PILImage.open(str(src))
|
for attempt in range(2):
|
||||||
img.load()
|
try:
|
||||||
except Exception as e:
|
img = PILImage.open(str(src))
|
||||||
logger.debug(f"Sous-tuilage {viz_key} impossible ({src.name}): {e}")
|
img.load()
|
||||||
_fallback_full_dalle(entries, viz_key, info)
|
break
|
||||||
|
except Exception as 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
|
continue
|
||||||
if img.mode not in ('RGB', 'L'):
|
if img.mode not in ('RGB', 'L'):
|
||||||
img = img.convert('RGB')
|
img = img.convert('RGB')
|
||||||
|
|||||||
Reference in New Issue
Block a user