Reproq
Background tasks for Django and PostgreSQL, with a Go worker and a terminal dashboard.
I built Reproq for Django applications that already use PostgreSQL and need background jobs. The Django package handles task definitions, scheduling, and results. A separate Go worker claims and executes jobs.
Workers use PostgreSQL’s SKIP LOCKED mechanism to claim available tasks. The system supports delayed and periodic jobs, priorities, deduplication, and concurrency limits. Management commands cover cancellation, logs, configuration checks, and worker upgrades.
I also built Reproq TUI, a terminal dashboard for queue depth, throughput, failures, and worker health. It connects to worker metrics and can include Django-side statistics.
Reproq is in alpha. The setup guide documents deployment requirements, including running one scheduler per database.
Reproq TUI · recorded test fixture
The queue from the terminal
The dashboard brings queue depth, failures, worker health, and events into one terminal view. This snapshot comes from the project’s automated UI test and contains sample metrics.
OK worker worker.local v0.1.0 demo scrape <ago> (120ms) THROUGHPUT AVAILABILITY FAILURE RATE P95 LATENCY - - 0.11/s 210ms | | Events | OBSERVABILITY upd 09:20:10 | Throughput - upd 09:20:10 listening | TASKS | No data yet | | Queue depth 7.00 | | Roles: worker, beat,... | Ready 8 | | 09:30:00 [role:worke... | Running 2 | | 09:31:00 retry sched... | Failed 1 | | | Paused 1 | | | | | | WORKERS | | | Total 3.00 | | | Alive 1 | | | Dead 0 | | Concurrency 3.00/10.0 | | | | | SYSTEM | Queue depth 7.00 upd 09:20:10 | | Worker Mem - | No data yet | | DB Pool NaN | | | DB Wait - | | | DBs 1 | | | | | | PERIODIC | | | Count 1 | | | Scheduler pg_cron | | | (low) | | | Queues 1 | | | Next up in 2h | | ? help * p pause * r refresh * 1 1m window * 2 5m window * 3 15m window * / filter * d details * e toggle events * l login/logout * q quit Window 5m0s Filter - Auth -