diff --git a/travel-proxy/app/indexer.py b/travel-proxy/app/indexer.py index bba22a2..23b23a7 100644 --- a/travel-proxy/app/indexer.py +++ b/travel-proxy/app/indexer.py @@ -179,8 +179,11 @@ def sync( added = 0 updated = 0 removed = 0 + sorted_albums = sorted(all_albums) + total_albums = len(sorted_albums) - for album in sorted(all_albums): + logger.info("Syncing %d albums...", total_albums) + for i, album in enumerate(sorted_albums, 1): folder = travel_root / album items = _scan_folder(folder) existing_filenames = {item["filename"] for item in items} @@ -190,17 +193,30 @@ def sync( updated += result["updated"] removed += result["removed"] + if result["added"] or result["removed"]: + logger.info( + "[%d/%d] %s: +%d/-%d (%d files)", + i, total_albums, album, result["added"], result["removed"], len(items), + ) + + logger.info("DB sync done: added=%d updated=%d removed=%d", added, updated, removed) + # 3. 썸네일 미생성 분 일괄 생성 no_thumb = db.get_photos_without_thumb() thumbs_generated = 0 thumb_done_batch = [] - for photo in no_thumb: + if no_thumb: + logger.info("Generating %d thumbnails...", len(no_thumb)) + + for idx, photo in enumerate(no_thumb, 1): src = travel_root / photo["album"] / photo["filename"] dest = thumb_root / photo["album"] / photo["filename"] if _generate_thumb(src, dest): thumb_done_batch.append(photo) thumbs_generated += 1 + if idx % 100 == 0: + logger.info("Thumbnails: %d/%d done", idx, len(no_thumb)) db.batch_mark_thumbs_done(thumb_done_batch) diff --git a/travel-proxy/app/main.py b/travel-proxy/app/main.py index df26347..75a634f 100644 --- a/travel-proxy/app/main.py +++ b/travel-proxy/app/main.py @@ -12,6 +12,10 @@ from PIL import Image from .db import init_db, get_photos_by_region, get_all_albums, set_album_cover, mark_thumb_done from .indexer import sync, _load_region_map_merged +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", +) logger = logging.getLogger(__name__) app = FastAPI()