Track when the last time a task/command/whatever was executed.
rushing/laravel-schedule-runs is a Laravel package for track when the last time a task/command/whatever was executed..
It currently has 0 GitHub stars and 1.012 downloads on Packagist (latest version 1.0).
Install it with composer require rushing/laravel-schedule-runs.
Discover more Laravel packages by rushing
or browse all Laravel packages to compare alternatives.
Last updated
Inspired by (Tofandel's Stack Overflow response)[https://stackoverflow.com/a/73554077]. Packagaed for reusability.
composer require rushing/laravel-schedule-runs
php artisan schedule-runs:install
Use the trait on one of your commands.
class MyCommand {
use \Rushing\ScheduleRuns\Traits\HasScheduleRuns;
protected $signature = 'app:my-command {--since=}';
public function getScheduleRunHandle()
{
// The class name is used by default in the trait, but you can override here.
return static::class;
}
public function handle()
{
$query = MyModel::query();
// Get the last schedule run
$this->getLastScheduleRun();
// Modify a query to get items created or updated after the last schedule run. Optionally, pass an override parameter.
$this->scopeWhereLastScheduleRun($query, ['created_at', 'updated_at'], '>=', $this->option('since'));
// Clear the history
$this->scheduleRuns()->delete(); // or each->delete() if you want to fire the model events.
// Set the last run time, optionally with extra data attached.
$this->setLastScheduleRun(now(), [
'whatever' => 'you want'
]);
}
}