如何在每月的特定日期安排laravel任务?

Eve*_*ert 5 php cron laravel laravel-5.1

现在阅读文档我没有看到直接的功能,但我确实看到了使用monthly()方法结合方法的选项when(),所以我想,我可以这样做:

$schedule->command('send:reminders')->monthly()->when(function() {
    return date('d') == '23';
});
Run Code Online (Sandbox Code Playgroud)

但现在我担心这样做不会起作用,因为据我所知,它when()每个月只会尝试约束一次(可能不是我想要它的日期),然后当它失败时它会跳过那个月.至少那是我从阅读laravel的来源猜测的.

那么我迷路了,我怎么做到这一点?

Mar*_*son 7

最简单的方法可能是cron在您的情况下使用该方法

$schedule->command('send:reminders')->cron('0 0 23 * *');
Run Code Online (Sandbox Code Playgroud)

这就是说,在本月23日的午夜运行.

  • 只需更新一点,从laravel 5.2.23开始[monthlyOn](https://laravel.com/api/5.2/Illuminate/Console/Scheduling/Event.html#method_monthlyOn)可用. (4认同)