Запланированное задание Laravel без дублирования, запуск по требованию
У меня есть запланированное задание с Laravel, которое определено ниже и выполняется каждые 10 минут. Мне также нужно, чтобы одно и то же задание выполнялось по требованию без его наложения, если оно уже запущено, или для предотвращения запуска запланированного задания, если задание по требованию выполняется.
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
$job = new \App\Jobs\ImportJob();
$job->handle();
})->name('Import')->everyTenMinutes()->withoutOverlapping();
}
Есть ли хороший, простой способ добиться этого с помощью schedular API или Job должен позаботиться о собственном флаге мьютекса?