fix(ingest): address review round 1 (reclaim queue + tests)
- Register the periodic stalled-job reclaim on a dedicated ingest-maintenance queue that every worker drains (any --tier), so reclaim still fires when the fast fleet is scaled to zero and only ocr workers run. procrastinate's periodic-defer dedup keeps it single-run across drainers. - escalation: mark `unsupported`/`forced` reason labels as reserved (not raised). - processor: note that options/progress_callback are intentionally not threaded through _parse_pdf_tier yet (symmetric with the inline path). - tests: assert TieredEscalationStrategy backoff progression (4/8/16/…/300s); cover get_ingest_pending per-queue aggregation + the legacy job_counts fallback; add an external-path zero-page no-escalation case; use the canonical INGEST_QUEUE_FAST instead of the back-compat alias. Deck #323. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
9676bb3106
commit
35f8204a16
@@ -48,7 +48,8 @@ class TestProcrastinateTaskProducer:
|
||||
assert len(jobs) == 1
|
||||
job = jobs[0]
|
||||
assert job["task_name"] == pq.INGEST_TASK_NAME
|
||||
assert job["queue_name"] == pq.INGEST_QUEUE_NAME
|
||||
# New jobs are deferred onto the cheapest tier's queue.
|
||||
assert job["queue_name"] == pq.INGEST_QUEUE_FAST
|
||||
assert job["queueing_lock"] == "alice:note:42"
|
||||
assert job["lock"] is None # no execution lock (crash-deadlock guard)
|
||||
assert job["args"]["doc_id"] == "42"
|
||||
|
||||
Reference in New Issue
Block a user