A backend system for asynchronous job processing using FastAPI, Celery, and Redis.
This system allows long-running tasks to run in background workers without blocking the API.
• Submit jobs through API
• Background task processing
• Redis message broker
• Celery worker execution
• Job status tracking
Python
FastAPI
Celery
Redis
SQLAlchemy
Client → FastAPI API → Redis Queue → Celery Workers → Database
Flow
- Client submits job through API
- Job placed into Redis queue
- Celery worker picks task from queue
- Worker processes the job
- Job status updated in database
app/
- main.py
- routes/
- models/
- database/
workers/
- worker.py
tasks/
- tasks.py
requirements.txt
README.md
Install dependencies
pip install -r requirements.txt
Start Redis
redis-server
Start Celery worker
celery -A workers.worker.celery worker --loglevel=info
Start FastAPI server
python -m uvicorn app.main:app --reload --port 8001
Create job
POST /jobs
{ "task_type": "generate_report" }
Response
{ "job_id": 1, "status": "pending" }
Check job status
GET /jobs/1
Response
{ "job_id": 1, "status": "completed", "result": "Report generated successfully" }
• task retries
• scheduled jobs
• distributed worker scaling
• monitoring dashboard