我想在特定时间的特定日期运行任务。现在我使用此代码在每个月的第 1 天和第 15 天运行任务。
$schedule->command('payments:create')->daily()->when(function ()
{
$days = [1,15];
$today = Carbon::today();
return in_array($today->day, $days);
});
Run Code Online (Sandbox Code Playgroud)
有没有办法设置这个任务在这些天的特定时间运行?
Ami*_*esh 11
您可以通过多种方式实现它,以下两个班轮:
$schedule->command('payments:create')->monthlyOn(1, '15:00');
$schedule->command('payments:create')->monthlyOn(15, '15:00');
Run Code Online (Sandbox Code Playgroud)
如果你想强制任务在维护模式下运行,你可以使用evenInMaintenanceMode方法:
$schedule->command('payments:create')->monthlyOn(15, '15:00')->evenInMaintenanceMode();
$schedule->command('payments:create')->monthlyOn(1, '15:00')evenInMaintenanceMode();
Run Code Online (Sandbox Code Playgroud)
另一种方式(Laravel 5.4 以后) 在线安排活动每月运行两次。
$schedule->command('payments:create')->twiceMonthly( 1, 15);
Run Code Online (Sandbox Code Playgroud)
如果你想在特定时间运行,那么使用 ->at(); 方法。
$schedule->command('payments:create')->twiceMonthly( 1, 15)->at('13:00');// At 1 PM of every 1st and 15th of every month
Run Code Online (Sandbox Code Playgroud)
在每个月的 1 和 15 的午夜执行 Crontab 的另一种方法
$schedule->command('payments:create')->cron('0 5 1,15 * *');
Run Code Online (Sandbox Code Playgroud)