Catalog collection reads gzipped search responses; admin lyrics jobs resume once their table exists

This commit is contained in:
Jonathan Sykes
2026-10-15 11:46:25 +08:00
parent 41004bf14d
commit b6e019c352
2 changed files with 10 additions and 2 deletions

View File

@@ -360,7 +360,11 @@ export function registerAdminToolsRoutes(app, { db, adminAuth, media = null, bac
} finally { activeJobId = null; workerBusy = false; }
}
if (autoStartJobs) {
sql.execute("UPDATE admin_lyrics_jobs SET status='queued',updated_at=unixepoch() WHERE status='running'").then(() => runBulkJob()).catch(error => console.warn('[admin-tools] could not resume lyrics jobs:', error.message));
// The table is created by the schema setup, which may still be running at
// start-up: retry until it exists rather than skipping the resume.
const resume = (tries = 0) => sql.execute("UPDATE admin_lyrics_jobs SET status='queued',updated_at=unixepoch() WHERE status='running'").then(() => runBulkJob())
.catch(error => { if (/no such table/.test(error.message) && tries < 30) setTimeout(() => resume(tries + 1), 2000).unref?.(); else console.warn('[admin-tools] could not resume lyrics jobs:', error.message); });
resume();
const timer = setInterval(runBulkJob, 1000); timer.unref?.();
}