Laravel - 通过编码触发所有队列

时间:2018-02-01 08:48:24

标签: php laravel laravel-5.5 laravel-queue lumen-5.4

我创建了5个名为q1,q2..q5的队列,每个队列都有一个要执行的作业。要同时运行所有5个作业,请将每个作业放在不同的队列中。

使用artisan命令,我可以在不同的控制台中运行每个队列

php artisan queue:work --queue:q1
php artisan queue:work --queue:q2
..
..
php artisan queue:work --queue:q5

我在控制台中使用上述命令获得了成功。但现在我需要在不使用控制台的情况下在编码中执行上述命令。

所以我尝试用下面的代码来执行。

\Illuminate\Support\Facades\Artisan::call("queue:work", ["--queue" => "q1"]);
\Illuminate\Support\Facades\Artisan::call("queue:work", ["--queue" => "q2"]);
..
..
\Illuminate\Support\Facades\Artisan::call("queue:work", ["--queue" => "q5"]);

但现在的问题是q2仅在q1完成后被选中,这意味着队列顺序执行但不是并行执行。

我使用sync选项作为队列驱动程序。这也首先执行q1,然后仅在q1完成后才选择q2。

我的技术配置是。

Queue drive: database
Os: windows 
Laravel version: 5.5, Lumen 5.4 
Mysql Database.

0 个答案:

没有答案