在laravel时间间隔安排工作

时间:2016-03-17 09:15:18

标签: php laravel laravel-5 cron scheduled-tasks

我在Kernel.php中每小时有三个计划工作,如下所示:

$schedule->command('get:twitter')->cron('* 1 * * * *');
$schedule->command('get:facebook')->cron('* 1 * * * *');
$schedule->command('get:googleplus')->cron('* 1 * * * *');

我想在以下某个时间间隔内运行这三个时间表:

$schedule->command('get:twitter')->cron('* 1 * * * *');//after 1 hour
$schedule->command('get:facebook')->cron('30 1 * * * *');//after 1.30 hour
$schedule->command('get:googleplus')->cron('45 1 * * * *');//after 1.45 hour

这是否可以在laravel 5.1

中实现

2 个答案:

答案 0 :(得分:5)

没有任何开箱即用但您可以这样做:

// every hour
$schedule->command('get:twitter')->hourly();

// every one and a half hours
$schedule->command('get:facebook')->cron('0 0,3,6,9,12,15,18,21 * * * *');
$schedule->command('get:facebook')->cron('30 1,4,7,10,13,16,19,22 * * * *');

// every two hours at x.15 minutes (0.15, 2.15, 4.15 etc)
$schedule->command('get:googleplus')->cron('15 */2 * * * *');

答案 1 :(得分:0)

使用最近的 Laravel 更新,您可以按如下方式运行它:

// Run the task every hour at 17 minutes past the hour
$schedule->command('emails:send')->hourly(17);

https://laravel.com/docs/8.x/scheduling#schedule-frequency-options