Laravel 调度程序 - 运行 特定时间的特定日期

Laravel scheduler - Run specific days of month at specific time

我想 运行 在特定时间的特定日期执行任务。 现在我使用此代码 运行 每月 1 号和 15 号的任务。

$schedule->command('payments:create')->daily()->when(function ()
    {
        $days = [1,15];
        $today = Carbon::today();

        return in_array($today->day, $days);
    });

有什么方法可以在这些天的特定时间将此任务设置为 运行?

您可以在每周的特定日期使用 ->mondays() 到 ->sundays()。

然后在一天中的特定时间使用 ->at('23:59')。

您可以通过多种方式实现它,以下两个衬里:

$schedule->command('payments:create')->monthlyOn(1, '15:00');
$schedule->command('payments:create')->monthlyOn(15, '15:00');

如果你想强制任务 运行 即使在维护模式下,你可以使用 evenInMaintenanceMode 方法:

$schedule->command('payments:create')->monthlyOn(15, '15:00')->evenInMaintenanceMode();
$schedule->command('payments:create')->monthlyOn(1, '15:00')evenInMaintenanceMode();

另一种方式(Laravel 5.4 以后) 在线将事件安排到 运行 每月两次。

$schedule->command('payments:create')->twiceMonthly( 1, 15);

如果你想在特定时间 运行 然后使用 ->at();方法。

$schedule->command('payments:create')->twiceMonthly( 1, 15)->at('13:00');// At 1 PM of every 1st and 15th of every month

另一种方式在每个月的 1 号和 15 号午夜执行 Crontab

 $schedule->command('payments:create')->cron('0 5 1,15 * *');