4

我有一个 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();
}

有没有一种简单的方法可以通过调度 API 实现这一点,或者作业是否应该处理自己的互斥标志?

4

0 回答 0