Monitor the output of scheduled tasks in a database table.
Track the output of your scheduled tasks in a database table.
composer require mirzabusatlic/laravel-schedule-monitor
Busatlic\ScheduleMonitor\ScheduleMonitorServiceProvider::class
to your list of $providers
in to your config/app.php
.php artisan vendor:publish --provider=Busatlic\\ScheduleMonitor\\ScheduleMonitorServiceProvider
.php artisan migrate
to create the scheduled_events
table in your database.app/Console/Kernel.php
, include the Busatlic\ScheduleMonitor\MonitorsSchedule
trait.$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.
Logged | Command | Output |
---|---|---|
2016-07-11 02:21:38 | files:delete | Deleted (6391/6391) total files. |