rafaeltovar/laravel-job-trackable

使用 Redis 跟踪 Laravel 任务。

v1.0.0 2020-01-22 10:47 UTC

This package is auto-updated.

Last update: 2024-09-23 19:06:02 UTC


README

跟踪 Laravel 任务,将状态、输入、输出和日期时间在 Redis 中保存一周。

基于 imTigger/laravel-job-status

任务跟踪在一周内保存在 Redis 中。此时间可以在配置文件中设置。

安装

Composer

composer require rafaeltovar/laravel-job-trackable

特性

  • 任务状态
  • 队列、执行、更新和完成的时间日期
  • 重试次数
  • Redis 持久化 / NoSQL 数据库
  • 用于管理跟踪的控制器
  • 简单轻量
  • Cli 命令

说明

步骤 1.config/app.phpproviders 部分中包含 Service Provider。

'providers' => [
  //...
  LaravelJobTrackable\Providers\LaravelJobTrackableServiceProvider::class,
];

步骤 2. 将特质添加到我们的 Laravel Job 中,并通过 track 方法初始化跟踪。步骤 3.* 使用 setOutput 方法保存最终作业输出。

<?php
namespace App\Jobs;

use LaravelJobTrackable\Jobs\TrackableJob;

class TrackedJob extends Job
{
    use TrackableJob;

    public function __construct($input1, $input2) {
        // track the job-execution
        $this->track(['input1' => $input1, 'input2' => $input2]); // inputs are optionals
    }

    public function handle()
    {
        // Do something...
        $this->setOutput(['output1' => $output1]); // optional
    }
}

使用控制器

如果您需要使用控制器来获取作业,可以使用它。

$ctrl = app(\LaravelJobTrackable\TrackedJobController::class);

try {
    $track = $ctrl->get($idJobTrack);

    // Do something...
} catch (\Exception $e) { // not found
    // Do something...
}

跟踪作业对象

对象 LaravelJobTrackable\TrackedJob 有以下公共方法:// TODO