定制 ami-praha/laravel-db-queue-monitor 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ami-praha/laravel-db-queue-monitor

最新稳定版本:1.2.0

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.

统计信息

  • 总下载量: 4.55k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固