为什么Laravel Horizon执行排队命令的速度比简单的artisan队列快得多:工作?

为什么Laravel Horizon执行排队命令的速度比简单的artisan队列快得多:工作?,laravel,performance,queue,laravel-horizon,Laravel,Performance,Queue,Laravel Horizon,我正在对一个命令进行排队(通过另一个命令),如果由queue处理:work需要~1分钟来执行,但如果通过artisan horizon运行,则只需要~15秒。 我已经验证并正确执行了代码——这个排队命令将数据从文件加载到数据库中,我已经确认在这两种情况下数据都正确加载 $ php artisan integ:load ctlem Job for files C_afi1411T.txt e C

我正在对一个命令进行排队(通过另一个命令),如果由queue处理:work需要~1分钟来执行,但如果通过artisan horizon运行,则只需要~15秒。 我已经验证并正确执行了代码——这个排队命令将数据从文件加载到数据库中,我已经确认在这两种情况下数据都正确加载

$ php artisan integ:load ctlem                                                    
Job for files C_afi1411T.txt e C_afi1411V.txt created.

$ php artisan queue:work --queue=data_load --tries=3 --timeout=0
[2019-11-20 09:49:18][1] Processing: Illuminate\Foundation\Console\QueuedCommand
[2019-11-20 09:50:16][1] Processed:  Illuminate\Foundation\Console\QueuedCommand
^C

$ php artisan integ:load ctlem
Job for files C_afi1411T.txt e C_afi1411V.txt created.

$ php artisan horizon
Horizon started successfully.
[2019-11-20 09:51:10][2] Processing: Illuminate\Foundation\Console\QueuedCommand
[2019-11-20 09:51:25][2] Processed:  Illuminate\Foundation\Console\QueuedCommand
^CShutting down...
$
我还在队列命令本身中记录了调用“heavy”函数前后的时间,日志确认了时间,即与任何设置和拆卸活动无关

如果需要,很乐意提供更多细节。
知道为什么会有这种差异吗?

好的,我已经确定了这种差异的原因:XDebug。 尽管我并没有积极地进行调试,但在php.ini中禁用xdebug会显著加快“artisan队列:工作”

虽然这显然是意料之中的,但运行“artisan horizon”以某种方式绕过了xdebug和“artisan quque:work”却没有,这一事实对我来说还是新鲜事

不管怎样,也许这有助于未来的开发者