Download the PHP package jaydeep/laravel-queue-monitor without Composer
On this page you can find all versions of the php package jaydeep/laravel-queue-monitor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jaydeep/laravel-queue-monitor
More information about jaydeep/laravel-queue-monitor
Files in jaydeep/laravel-queue-monitor
Package laravel-queue-monitor
Short Description Monitor your Laravel queues — track pending, running, completed, and failed jobs from an Artisan command or a live web dashboard.
License MIT
Informations about the package laravel-queue-monitor
Laravel Queue Monitor
Monitor your Laravel queues at a glance. Laravel Queue Monitor records the full lifecycle of every queued job and shows you pending, running, completed, and failed jobs — from an Artisan command or a live web dashboard.
Laravel ships with failed_jobs (failed) and a jobs table (pending, database
driver only), but it never stores completed jobs. This package fills that gap
by subscribing to Laravel's queue events and persisting each job's lifecycle to
a dedicated queue_monitor table — so it works with any queue driver
(database, Redis, SQS, …).
Screenshots
The live dashboard with stat cards and the recent-jobs table.
Queued (pending) jobs:
Completed & failed jobs:
Requirements
- PHP 7.4 – 8.4
- Laravel 8 – 12
Installation
From Packagist
Local development (path repository)
If you are working on the package from a local checkout, add a path repository
to your application's composer.json before requiring it:
Publish and migrate
The service provider is auto-discovered. Publish and run the migration:
Optionally publish the config and views:
Usage
Artisan command
Options:
| Option | Description |
|---|---|
--json |
Output the full snapshot as JSON |
--limit=N |
Number of recent jobs to list |
--prune |
Delete records older than the configured retention hours |
--json returns a machine-readable snapshot:
Web dashboard
Visit /queue-monitor in your browser for a live, auto-refreshing,
responsive Bootstrap 5 dashboard with stat cards and a paginated recent
jobs table (Prev / Next). It polls /queue-monitor/stats on the interval set in
config; the stat cards always reflect global totals while the table is paged.
The stats endpoint accepts pagination query parameters:
Response shape:
Security: the dashboard uses the
webmiddleware group by default. Before exposing it in production, add authentication/authorization middleware inconfig/queue-monitor.php(route.middleware), e.g.['web', 'auth'].
Configuration
config/queue-monitor.php:
| Key | Default | Description |
|---|---|---|
enabled |
true |
Master switch for lifecycle recording |
table |
queue_monitor |
Monitor table name |
connection |
null |
DB connection for the table (null = default) |
route.enabled |
true |
Enable the web dashboard routes |
route.prefix |
queue-monitor |
URL prefix for the dashboard |
route.middleware |
['web'] |
Middleware applied to the dashboard routes |
route.refresh |
5 |
Dashboard auto-refresh interval (seconds) |
recent_limit |
25 |
Recent jobs shown in the console command |
per_page |
15 |
Jobs per page on the web dashboard |
prune_after_hours |
72 |
Retention window used by --prune (null = keep) |
Each key is also driven by an environment variable — set QUEUE_MONITOR_ENABLED=false
to switch recording off without touching config, or QUEUE_MONITOR_ROUTE_ENABLED=false
to disable the dashboard routes.
How it works
The package registers a subscriber for Laravel's queue events:
| Event | Recorded status |
|---|---|
JobQueued |
queued |
JobProcessing |
running |
JobProcessed |
completed |
JobFailed |
failed |
Records are correlated by job id across events. All monitor writes are wrapped in a guard, so a monitoring error can never interrupt the job being processed.
queue_monitor table
| Column | Notes |
|---|---|
id |
Primary key |
job_id |
Driver job id (used to correlate events) |
name |
Resolved job class name |
connection, queue |
Where the job ran |
status |
queued / running / completed / failed |
attempts |
Attempt count at last update |
queued_at, started_at, finished_at |
Lifecycle timestamps |
duration_ms |
Processing time in milliseconds |
exception |
Full exception string for failed jobs |
created_at, updated_at |
Eloquent timestamps |
Querying in code
Testing
License
MIT © Jaydeep Gadhiya
All versions of laravel-queue-monitor with dependencies
illuminate/console Version ^8.0|^9.0|^10.0|^11.0|^12.0
illuminate/database Version ^8.0|^9.0|^10.0|^11.0|^12.0
illuminate/queue Version ^8.0|^9.0|^10.0|^11.0|^12.0
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0