【发布时间】:2016-06-07 09:41:54
【问题描述】:
我正在尝试安排相同的工匠任务在 Laravel 5.2 中并行运行。一开始,我把$schedule->command放在Kernel.php的for循环中:
for ($j = 0; $j < 10; $j++) {
$schedule->command('foo:bar --option=' . $j)
->dailyAt("1:00");
}
我发现 foo:bar 实际上是以串行方式一个接一个地运行的。上一个命令完成后,下一个命令开始。
然后我改代码如下,
$schedule->call(function(){
for ($j = 0; $j < 10; $j++) {
Artisan::queue('foo:bar', [
'--option' => $j
]);
}
})->dailyAt(1:00);
当我使用 ps aux 检查 Ubuntu 时,我看到了两个任务而不是 10 个任务。我错过了什么吗?安排同一个 Artisan 任务同时开始并行运行的最佳方式是什么?谢谢。
【问题讨论】:
标签: php laravel parallel-processing