Marketplace
<div align="center"> <h3>Premium sponsors</h3> <p> <a href="https://id8media.com"><strong>ID8 Media</strong></a> · <a href="https://one-studio.co"><strong>One Studio</strong></a> </p> <p><sub>Support togo — <a href="https://github.com/sponsors/fadymondy">become a sponsor</a>.</sub></p> </div>
queue-dashboard
Infrastructuretogo queue dashboard — monitor jobs, retries, failures & throughput
togo-framework
bash
togo install togo-framework/queue-dashboardInstall
bash
togo install togo-framework/queue-dashboardObserve the togo queue: track every job's lifecycle (queued → running → done/failed/retried), aggregate throughput, latency and failure stats per queue, and retry or delete failed jobs — over a REST + Go API.
How it works
The togo Queue interface is Handle/Dispatch only, so the dashboard observes jobs by wrapping their handlers. Wrapped handlers record start/finish, duration and errors automatically.
Usage
go
import (
queuedashboard "github.com/togo-framework/queue-dashboard"
"github.com/togo-framework/togo"
)
func register(k *togo.Kernel) {
qd, _ := queuedashboard.FromKernel(k)
// Wrap handlers so jobs are tracked.
k.Queue.Handle("emails", qd.Wrap("emails", "send", sendEmail))
// (optional) record an enqueue for queued-depth visibility:
id := qd.RecordDispatch("emails", "send", payload)
_ = id
}
Inspect from Go:
go
qd.Jobs(queuedashboard.Filter{Queue: "emails", Status: queuedashboard.StatusFailed, Limit: 50})
qd.Stats() // []QueueStat{total, done, failed, failure_rate, avg_ms, ...}
qd.Retry(ctx, jobID) // re-dispatch a failed job
qd.Delete(jobID)
REST API
Method | Path | Purpose |
|---|---|---|
| GET | /api/queue-dashboard/jobs?queue=&type=&status=&limit= | list recorded jobs |
| GET | /api/queue-dashboard/stats | per-queue health (throughput, failure rate, avg ms) |
| GET | /api/queue-dashboard/dashboard | stats + recent jobs (one call) |
| POST | /api/queue-dashboard/jobs/{id}/retry | re-dispatch a job |
| DELETE | /api/queue-dashboard/jobs/{id} | remove a recorded job |
Rows per page
1–5 of 5Page 1 of 1
Configuration
No required env. Records are kept in a bounded in-memory ring (newest 2000) with a pluggable store interface for a DB-backed implementation. Pairs with togo install togo-framework/queue + a worker.
<div align="center"> <h3>Premium sponsors</h3> <p> <a href="https://id8media.com"><strong>ID8 Media</strong></a> · <a href="https://one-studio.co"><strong>One Studio</strong></a> </p> <p><sub>Support togo — <a href="https://github.com/sponsors/fadymondy">become a sponsor</a>.</sub></p> </div>