Laravel如何处理同时安排的多个命令任务?

时间:2018-05-25 15:20:56

标签: laravel cron queue task scheduling

这是我一直想到的东西。 Laravel的任务调度程序如何处理同时安排的多个任务?

假设我有4个不同的命令,每个命令都设置为在凌晨1点15分执行:

$schedule->command('emails:send')->daily()->at('1:15');
$schedule->command('cache:maintenance')->daily()->at('1:15');
$schedule->command('users:remove-deleted')->daily()->at('1:15');
$schedule->command('users:notification-reminders')->daily()->at('1:15');

另外,为了论证,让我们说每个命令需要2-5分钟才能完成。 Laravel民意调查队列:每分钟工作一次,那么如果第一个命令尚未完成,那么在凌晨1:16会发生什么? Laravel是否会自动将其余命令放入队列中,还是必须为每个命令显式创建队列工作程序?

1 个答案:

答案 0 :(得分:0)

如果您的队列设置了多个驱动程序,则它们可以同时运行。大多数生产服务器可以同时轻松处理许多任务。否则,它会将它们添加到一个队列堆栈并按指定的顺序运行。