Run the reconciliation pass at startup and once a day (closes #250)
check / check (push) Waiting to run

The pass makes a database query for every cached file and ran on every
eviction tick, so on a large cache one pass could outlast the tick and
the next started at once. It now runs on a timer of its own that starts
when a pass ends, a day long. Eviction and the removal of expired
negative cache rows keep the eviction interval.

Model: opus-5-5
This commit is contained in:
2026-10-15 20:43:30 +00:00
parent af6ab4a668
commit b984b27cf8
3 changed files with 59 additions and 40 deletions
+1 -1
View File
@@ -168,7 +168,7 @@ references rather than using filesystem refcounting.
Source and transformed image files, and the `.meta` file beside each transformed
image, are written under a temporary name, synced to disk, and only then renamed
into place, so a crash leaves no file under its own name with part of its data.
When pixa starts, and every five minutes after, it removes each cached source or
When pixa starts, and once a day after, it removes each cached source or
transformed image whose file is empty, or not the size the database records for
it, with a warning naming the file; the next request for it fetches the source
or converts the image again.