Download the PHP package xmlshop/queue-monitor without Composer
On this page you can find all versions of the php package xmlshop/queue-monitor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download xmlshop/queue-monitor
More information about xmlshop/queue-monitor
Files in xmlshop/queue-monitor
Package queue-monitor
Short Description Queue Monitoring for Laravel Database Job Queue
License MIT
Informations about the package queue-monitor
Queue Monitor
For Laravel framework
This package offers monitoring like Laravel Horizon for database queue.
This package initially forked from Laravel-Queue-Monitor.
Features
- Monitor jobs like Laravel Horizon for any queue
- Handle failing jobs with storing exception
- Monitor job progress
- Get an estimated time remaining for a job
- Store additional data for a job monitoring
Installation
Configuration
Copy configuration & migration to your project:
Migrate the Queue Monitoring table. The table name can be configured in the config file or via the published migration.
Scheduler
After the listener automatically will be launched queue-monitor:listener
. It might be disabled in configuration or by command
Application Error handler have to be replaced at your application Please add custom error handler:
And please register that in ApplicationProvider
Alert function
- Listener looks into database in the
x_queue_monitoring_queue_sizes
table and comparing current amount with amount mentioned in fieldalert_threshold
. If exceed - alert. - Listener looks into database in the
x_queue_monitoring
table and comparing several metrics (pending time, execution time, etc.) - You can manage exceptions for each Job. Including ignore alert.
Usage
To monitor a job, simply add the xmlshop\QueueMonitor\Traits\IsMonitored
Trait.
Important! You need to implement the Illuminate\Contracts\Queue\ShouldQueue
interface to your job class. Otherwise, Laravel framework will not dispatch any events containing status information for monitoring the job.
UI
You can enable the optional UI routes by calling Route::queueMonitor()
inside your route file, similar to the official ui scaffolding.
Routes
Route | Action |
---|---|
/monitor |
Show the jobs table |
See the configuration files for more information.
Extended usage
Progress
You can set a progress value (0-100) to get an estimation of a job progression.
Chunk progress
A common scenario for a job is iterating through large collections.
This example job loops through a large amount of users and updates it's progress value with each chunk iteration.
Progress cooldown
To avoid flooding the database with rapidly repeating update queries, you can set override the progressCooldown
method and specify a length in seconds to wait before each progress update is written to the database. Notice that cooldown will always be ignore for the values 0, 25, 50, 75 and 100.
Custom data
This package also allows setting custom data in array syntax on the monitoring model.
In order to show custom data on UI you need to add this line under config/monitor.php
Only keep failed jobs
You can override the keepMonitorOnSuccess()
method to only store failed monitor entries of an executed job. This can be used if you only want to keep failed monitors for jobs that are frequently executed but worth to monitor. Alternatively you can use Laravel's built in failed_jobs
table.
Retrieve processed Jobs
Model Scopes
All versions of queue-monitor with dependencies
ext-json Version *
ext-mbstring Version *
ext-posix Version *
gpressutto5/laravel-slack Version ^2.0
illuminate/database Version ^5.5|^6.0|^7.0|^8.0|^9.0
illuminate/queue Version ^5.5|^6.0|^7.0|^8.0|^9.0
illuminate/support Version ^5.5|^6.0|^7.0|^8.0|^9.0
lorisleiva/cron-translator Version ^0.4
nesbot/carbon Version ^2.0
webpatser/laravel-uuid Version ^4.0