academe/laravel-queue-monitor

一个用于监控队列任务的 Laravel 扩展包。

2.0.2 2019-12-20 00:42 UTC

This package is auto-updated.

Last update: 2024-09-20 11:21:45 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel Queue Monitor

一个用于监控队列任务的 Laravel 扩展包。将有关 队列任务 的某些信息记录到数据库表中

  • 任务包括开始和结束时间戳的经过时间
  • 如果使用 --tries,则每个任务的尝试次数
  • 如果任务失败,则提供的异常(如果有的话)
  • 自定义数据(可选)

需求

  • Laravel 5.5+

这是 gilbitron/laravel-queue-monitor 的一个分支,我有一些特定的项目需求,但没有时间为每个更改生成单独的 PR,也没有保证它们会被接受。所以请根据您的需求选择分支 :-)

安装

安装 composer 包

composer require academe/laravel-queue-monitor

config/app.php 中添加服务提供者(对于 Laravel 5.5+,此步骤不是必需的)

/*
 * Package Service Providers...
 */
Academe\LaravelQueueMonitor\LaravelQueueMonitorProvider::class,

运行迁移以设置 queue_monitor 数据库表

php artisan migrate

使用方法

所有队列任务现在将被监控,并将结果存储到 queue_monitor 数据库表中。不需要其他配置。

自定义数据

要将自定义数据与队列监控结果一起保存,您需要在您的任务中包含 QueueMonitorData 特性,并使用 saveQueueMonitorData() 方法。例如

<?php

namespace App\Jobs;

use Academe\LaravelQueueMonitor\Jobs\QueueMonitorData;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class ExampleJob implements ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels, QueueMonitorData;

    protected $results = 0;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $this->results = rand(1, 100);

        $this->saveQueueMonitorData([
            'results' => $this->results,
        ]);

        // ...
    }
}

致谢

Laravel Queue Monitor 由 Gilbert PellegromDev7studios 创建。在 MIT 许可下发布。