feat: Resilient background job retry & monitoring#755
Open
shaidshark wants to merge 5 commits intorohitdash08:mainfrom
Open
feat: Resilient background job retry & monitoring#755shaidshark wants to merge 5 commits intorohitdash08:mainfrom
shaidshark wants to merge 5 commits intorohitdash08:mainfrom
Conversation
added 5 commits
April 3, 2026 10:48
…sh08#130) - Redis-backed job queue with priority support - Configurable retry policy with exponential backoff - Job statuses: PENDING, RUNNING, SUCCEEDED, FAILED, RETRYING, DEAD - Dead letter queue for permanently failed jobs - Job worker process with graceful shutdown - REST API at /jobs for monitoring and management - GET /jobs/stats — queue statistics - GET /jobs — job history with filtering - POST /jobs — enqueue new jobs - POST /jobs/:id/retry — retry dead letter jobs - 10 test cases covering enqueue, dequeue, retry, dead letter, stats
- Implement real retry delay using Redis sorted set (ZADD) - Remove from PROCESSING_KEY on retry (was leaking) - Replace keys() with scan_iter for performance - Add admin check to /all endpoint (403 for non-admins) - Add ownership check to get_job_detail - Add task_name whitelist validation - Fix payload deserialization (robust try/except) - Add job execution timeout (30min) in worker - Promote delayed jobs to main queue on dequeue
- keys() blocks Redis event loop on large datasets; scan_iter is cursor-based - Removed uid==1 hardcoded admin bypass from /all endpoint - Admin access now purely via JWT is_admin claim
Lines 41, 42, 46, 103 had leading backticks that would cause SyntaxError. Addresses review feedback from rohitdash08#755
Author
|
Bounty submission — ready for review! All code review feedback from previous rounds has been addressed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bounty #130 — Resilient background job retry & monitoring
What's included
Core: Redis-backed Job Queue
Worker Process
egister_task(name, handler)\
REST API at /jobs:
Tests:
Acceptance Criteria