ami-praha/laravel-db-queue-monitor
Composer 安装命令:
composer require ami-praha/laravel-db-queue-monitor
包简介
Laravel DB Queue Monitoring
README 文档
README
This package offers monitoring like Laravel Horizon for database queue.
Features
- Monitor all jobs like Laravel Horizon, but not only for redis
- Handles failed jobs with exception
- Support for milliseconds
- Model for Queue Monitorings
Installation
composer require ami-praha/laravel-db-queue-monitor
Or add ami-praha/laravel-db-queue-monitor to your composer.json
"ami-praha/laravel-db-queue-monitor": "^1.0.12"
Run composer update to pull the latest version.
If you use Laravel 5.5+ you are already done, otherwise continue:
AmiPraha\LaravelDbQueueMonitor\Providers\LaravelDbQueueMonitorProvider::class,
Add Service Provider to your app.php configuration file:
Configuration
Copy configuration to config folder:
$ php artisan vendor:publish --provider="AmiPraha\LaravelDbQueueMonitor\Providers\LaravelDbQueueMonitorProvider" --tag="config"
Copy Vue components to resources folder if you want to modify components (not needed):
$ php artisan vendor:publish --provider="AmiPraha\LaravelDbQueueMonitor\Providers\LaravelDbQueueMonitorProvider" --tag="vue-components"
and add component to admin/app.js like this:
Vue.component('basic-laravel-db-queue-monitor', require('./components/BasicLaravelDbQueueMonitor'));
or if you yre going to use component directly from the package, then like this:
Vue.component('basic-laravel-db-queue-monitor', require('../../../../vendor/ami-praha/laravel-db-queue-monitor/resources/assets/js/admin/components/BasicLaravelDbQueueMonitor'));
Migrate the Queue Monitoring table. The table name itself can be configured in the config file.
$ php artisan migrate
Usage
To monitor a job, add the AmiPraha\LaravelDbQueueMonitor\Traits\LaravelDbQueueMonitor Trait.
Update Job Progress / Custom Data
You can update the progress of the current job, like supported by FFMpeg
use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use AmiPraha\LaravelDbQueueMonitor\Traits\LaravelDbQueueMonitor; // <--- class ExampleJob implements ShouldQueue { use Dispatchable; use InteractsWithQueue; use Queueable; use SerializesModels; use LaravelDbQueueMonitor; // <--- public function handle() { // Save progress, if job driver supports $ffmpeg->on('progress', function ($percentage) { $this->queueProgress($percentage); }); // Save data if finished. Must be type of array $this->queueData(['foo' => 'bar']); } }
Retrieve processed Jobs
use AmiPraha\LaravelDbQueueMonitor\Models\Monitor; $jobs = Monitor::ordered()->get(); foreach ($jobs as $job) { // Exact start & finish dates with milliseconds $job->startedAtExact(); $job->finishedAtExact(); }
Model Scopes
// Filter by Status Monitor::failed(); Monitor::succeeded(); // Filter by Date Monitor::lastHour(); Monitor::today(); // Chain Scopes Monitor::today()->failed(); // Get parsed custom Monitor data $monitor = Monitor::find(1); $monitor->data; // Raw data string $monitor->parsed_data; // JSON decoded data, always array
ToDo
- Add Job & Artisan Command for automatic cleanup of old database entries
The Idea has been inspirated by gilbitron's laravel-queue-monitor package.
ami-praha/laravel-db-queue-monitor 适用场景与选型建议
ami-praha/laravel-db-queue-monitor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.7k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2021 年 01 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 ami-praha/laravel-db-queue-monitor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ami-praha/laravel-db-queue-monitor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.7k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-13