mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-03 04:40:09 +00:00
06195e6570
Introduce a safety-net scheduled job that scans completed audiobooks and auto-triggers ebook fetches for missing companions. Changes include: - New Prisma migration + schema field: requests.ebook_auto_retry_count (nullable) to track lifetime auto-retries. - New processor: src/lib/processors/find-missing-ebooks.processor.ts implementing the scan (limit 50), gating by ebook_auto_grab_enabled and source flags, creating ebook child requests or retrying failed ones up to a cap of 5, using transactions for race-safety and rolling back the counter if enqueue fails. - Job queue integration: add job type, payload, processor registration, and addFindMissingEbooksJob helper. - Scheduler integration: register the scheduled job (daily midnight) and trigger path. - Documentation updates: backend scheduler and ebook-sidecar docs describing behavior and limits. - Tests: add comprehensive unit tests for the processor and update scheduler tests and job-queue test helper. This implements automated recovery for missing ebook companions while keeping the retry counter processor-private and ensuring safe concurrency handling.
6 lines
381 B
SQL
6 lines
381 B
SQL
-- Add lifetime auto-retry counter for the find_missing_ebooks scheduled job.
|
|
-- Nullable: NULL distinguishes "never touched by this job" from 0.
|
|
-- Only the find-missing-ebooks processor reads/writes/increments this column.
|
|
-- Manual Fetch Ebook routes do not touch it (counter is sacred per engineering brief).
|
|
ALTER TABLE "requests" ADD COLUMN "ebook_auto_retry_count" INTEGER;
|