每五分钟运行一次任务而不重叠?

时间:2016-02-03 11:57:06

标签: laravel scheduled-tasks laravel-5.2 artisan

引用https://laravel.com/docs/5.1/scheduling#preventing-task-overlaps

$schedule->command('emails:send')->withoutOverlapping();
     

在此示例中,每个都会运行emails:send Artisan命令   分钟,如果它还没有运行。

如果我希望每五分钟执行一次任务怎么办?我可以这样做吗?:

$schedule->command('emails:send')->everyFiveMinutes()->withoutOverlapping();

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。 command返回Event实例,Event的基础代码具有流畅的界面,允许您以这种方式将这些链接在一起。

如果您查看withoutOverlapping方法,可以自行查看。

/**
 * Do not allow the event to overlap each other.
 *
 * @return $this
 */
public function withoutOverlapping()
{
    $this->withoutOverlapping = true;
    return $this->skip(function () {
        return file_exists($this->mutexPath());
    });
}