【问题标题】:Task Scheduling on custom day Laravel自定义日任务调度 Laravel
【发布时间】:2020-02-04 21:54:00
【问题描述】:

我只想在这几天做这项工作,我可以使用 at() 和 when() 吗????

$schedule->command('mycommand')->when(function () {
            $day = Carbon::today()->day;
            if($day == 3 || $day == 5 || $day == 7 || $day == 22) {
                return true;
            } else {
                return false;
            }
        })->at('17:00');

【问题讨论】:

标签: laravel cron scheduled-tasks cron-task


【解决方案1】:

你可以这样使用:

$schedule->command('mycommand')->monthlyOn(3, '17:00');
$schedule->command('mycommand')->monthlyOn(5, '17:00');
$schedule->command('mycommand')->monthlyOn(7, '17:00');
$schedule->command('mycommand')->monthlyOn(22, '17:00');

或者,更简单的方法,使用 cron :

$schedule->command('mycommand')->cron('0 17 3,5,7,22 * *');

【讨论】:

  • cron方法更优雅?
  • 我想是的,很抱歉我们同时写了答案,即使你有几秒钟前的时间。
  • 几秒钟就好了!不是故意的¯\_(ツ)_/¯
【解决方案2】:

您可以在特定日期重复多次每月运行

$schedule->command('mycommand')->monthlyOn(3, '17:00');
$schedule->command('mycommand')->monthlyOn(5, '17:00');
$schedule->command('mycommand')->monthlyOn(7, '17:00');
$schedule->command('mycommand')->monthlyOn(22, '17:00');

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-02
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2021-10-22
    • 1970-01-01
    相关资源
    最近更新 更多