在本月的最后一个星期一运行cron - Laravel

时间:2017-01-18 07:37:53

标签: laravel laravel-5 cron laravel-5.3

我想使用Laravel的Cron API在本月的最后一个星期一运行一个cron 。我检查过这个:

https://laravel.com/docs/5.3/scheduling

我没有得到任何解决方案。

我最多可以:

$schedule->command(Commands\PerformerReminder::class)->monthly()->mondays();

但我认为它将在本月的每个星期一运行cron,而不仅仅是上周一

如果使用Laravel的cron API无法做到这一点,那么我可以使用常规的cron选项。

我认为会是这样的:

$schedule->command(Commands\PerformerReminder::class)->cron('* * * * *);

我不知道cron()函数中的值是什么。

任何帮助都会得到满足。

谢谢,

Parth Vora

2 个答案:

答案 0 :(得分:1)

怎么样

use Carbon;

$schedule->command(Commands\PerformerReminder::class)->mondays()->when(function(){
    // return true if this monday is last monday of this month

    return (Carbon::now()->isSameDay($now->lastOfMonth(Carbon::MONDAY)));
});

答案 1 :(得分:1)

我得到了这个:

应用/控制台/ Kernal.php:

protected function schedule(Schedule $schedule)
{
    $schedule->command(Commands\PerformerReminder::class)->when(function() {
        return (new Carbon('last monday of this month'))->isToday();
    });
}