Make thumbnail generation atomic and warm it on import
- write thumbnails to a .part file and os.replace() them, so concurrent requests never read a half-written JPEG - a stale thumbnail plus a vanished source no longer raises through the request (getmtime on a missing file returned 500); it falls back cleanly - ensure_thumbnail(item) warms the preview when a file is indexed, keeping image decoding out of the request path
This commit is contained in:
@@ -128,6 +128,12 @@ def complete_temp_upload(temp, download_url=None):
|
||||
services.ensure_visual_hashes(item)
|
||||
temp.file.delete(save=False)
|
||||
|
||||
# Warm the preview while the import is still off the request path.
|
||||
try:
|
||||
services.ensure_thumbnail(item)
|
||||
except Exception: # noqa: BLE001 - a preview must not fail the import
|
||||
logger.exception("Could not warm the thumbnail for J-%s", item.id)
|
||||
|
||||
temp.library_item = item
|
||||
temp.status = TempUpload.STATUS_COMPLETED
|
||||
|
||||
|
||||
Reference in New Issue
Block a user