У меня есть запланированное задание с 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 должен позаботиться о собственном флаге мьютекса?
Задача ещё не решена.
Других решений пока нет …