Awn*_*Ali 3 laravel laravel-5 laravel-5.1 laravel-5.2 laravel-5.3
我通过调度程序使用laravel 5.2命令,我可以通过以下代码调用该命令:
$schedule->command('command:name')
->dailyAt('08:55');
Run Code Online (Sandbox Code Playgroud)
但是现在我想在六个不同的时间每天拨打上面的命令,即8:45,9:15,9:45,10:15等
$schedule->command('command:name')
->when(function(){return true;});
Run Code Online (Sandbox Code Playgroud)
上面的代码,当功能,不能以某种方式工作,有人可以建议laravel的最佳实践.
Ale*_*nin 12
为什么不定义4个任务,它简单易读:
$schedule->command('command:name')->dailyAt('08:55');
$schedule->command('command:name')->dailyAt('09:15');
$schedule->command('command:name')->dailyAt('09:45');
$schedule->command('command:name')->dailyAt('10:15');
Run Code Online (Sandbox Code Playgroud)
此外,你可以把它放在一个循环中:
foreach (['08:45', '09:15', '09:45', '10:15'] as $time) {
$schedule->command('command:name')->dailyAt($time);
}
Run Code Online (Sandbox Code Playgroud)
对于 Laravel 5.5,有这个between()功能。它记录在这里
$schedule ->command('foo')
->everyThirtyMinutes()
->between('8:45', '10:15');
Run Code Online (Sandbox Code Playgroud)
当然,这对 Laravel 5.2 不起作用,但我相信你可以用这个when()函数做一些事情,因为v5.2也有记录
$schedule ->command('foo')
->everyThirtyMinutes()
->when(function () {
return date('H') >= 8 && date('H') <= 11;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2405 次 |
| 最近记录: |