mirzabusatlic/laravel-schedule-monitor

There is no license information available for the latest version (v1.02) of this package.

Monitor the output of scheduled tasks in a database table

v1.02 2017-07-11 14:00 UTC

This package is auto-updated.

Last update: 2024-11-17 10:34:58 UTC


README

Track the output of your scheduled tasks in a database table.

Installation

  1. Install through composer: composer require mirzabusatlic/laravel-schedule-monitor
  2. Add Busatlic\ScheduleMonitor\ScheduleMonitorServiceProvider::class to your list of $providers in to your config/app.php.
  3. Publish the migration using php artisan vendor:publish --provider=Busatlic\\ScheduleMonitor\\ScheduleMonitorServiceProvider.
  4. Run php artisan migrate to create the scheduled_events table in your database.

Usage

  • In your app/Console/Kernel.php, include the Busatlic\ScheduleMonitor\MonitorsSchedule trait.
  • Call $this->monitor($schedule) after you've defined your scheduled commands in schedule().

This will look something like:

<?php

namespace App\Console;

use Busatlic\ScheduleMonitor\MonitorsSchedule;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    use MonitorsSchedule;

    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        \App\Console\Commands\DeleteFilesCommand::class,
        \App\Console\Commands\FlushEventsCommand::class,
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule $schedule
     *
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('files:delete')->dailyAt('00:05');
        
        $schedule->command('events:flush')->hourly();

        $this->monitor($schedule);
    }
}

Whenever a scheduled command is then run, the its output will be inserted into the scheduled_events table.