【发布时间】:2018-11-05 01:02:25
【问题描述】:
这是我一直在考虑的事情。 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 是否会自动将剩余的命令放入队列中,还是我必须为每个命令显式创建队列工作程序?
【问题讨论】:
-
我不知道你的问题的细节,所以我会限制自己发表评论 - 但我会说如果你真的需要他们去在特定时间并且您知道时间会有变化,您可能最好使用常规的 cron 作业并在任务调度程序中只保留较少耗时的任务。
标签: laravel cron queue task scheduling