Laravel Scheduler:如何仅在工作日运行任务?

时间:2016-03-27 15:52:17

标签: php laravel cron scheduled-tasks

我正在编写Laravel调度程序任务,并希望每个工作日每天运行一次(从星期一到星期五)。

我看到Task Scheduler->weekdays()选项,可能正是我想要的。 但我无法找到这个选项的确认或描述,表示它将从周一到周五运行,而不是从周一到周六运行。

另外,我想在特定时间运行任务。我看到有->dailyAt('13:00');方法。我想知道在工作日运行任务的最佳解决方案。

提前致谢!

P.S。我使用Laravel 5.2,以防万一。

2 个答案:

答案 0 :(得分:3)

我想这是一个确认,weekdays()方法的源代码:

public function weekdays()
{
    return $this->spliceIntoPosition(5, '1-5');
}

您可以在此处找到它:\vendor\laravel\framework\src\Illuminate\Console\Scheduling\Event.php

weekdays()之后,你会看到mondays()方法,这表明Laravel计算星期一为"第1天和第34天:

public function mondays()
{
        return $this->days(1);
}

答案 1 :(得分:0)

您可以在问题的第二部分使用此代码

->weekdays()->at('time you want')

基于Laravel documentation