rafaeltovar/laravel-job-trackable

Laravel job tracked in Redis.

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

This package is auto-updated.

Last update: 2024-04-23 18:13:13 UTC


README

Track Laravel Jobs, saving status, inputs, outputs and date times during a week in Redis.

Based on imTigger/laravel-job-status.

Jobs tracks is saved during a week in Redis. This time can be setted in config file.

Installation

Composer

composer require rafaeltovar/laravel-job-trackable

Features

  • Job status
  • Date time of queue, execute, update and finished
  • Number of retries
  • Redis persist / NoSQL database
  • Controller for manage Tracks
  • Simple and light
  • Cli commands

Instructions

Step 1. Include Service Provider into providers section in config/app.php.

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

Step 2. Add trait to our Laravel Job and init track with track method. Step 3.* Use setOutput method for save final Job output.

<?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
    }
}

Using Controller

If you need use the controller for get jobs can you use it.

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

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

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

Object TrackedJob

The object LaravelJobTrackable\TrackedJob have the following public methods: // TODO

Method Allowed values
getStatus() : string
setStatus(string) : self
setOutput(array)
getOutput(): array
getQueuedAt() ?\Carbon\Carbon