Запланированное задание 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 должен позаботиться о собственном флаге мьютекса?

0 ответов

Другие вопросы по тегам