-1

我正在排队一个命令(通过另一个命令),如果由 queue:work 处理,执行大约需要 1 分钟,但如果通过 artisan horizo​​n 运行,只需要大约 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...
$

我还记录了调用队列命令本身内部的“重”函数之前和之后的时间,并且日志确认了时间,即它与任何设置和拆卸活动无关。

如果需要,很高兴提供更多详细信息。任何想法为什么会有这种差异?

4

1 回答 1

0

好的,所以我已经确定了造成这种差异的原因:XDebug。虽然我没有主动调试,但在 php.ini 中禁用 xdebug 会显着加快“artisan queue:work”的速度。

虽然这显然是意料之中的,但运行 'artisan horizo​​n' 以某种方式绕过 xdebug 和 'artisan quque:work' 的事实对我来说并不新鲜。

无论如何,也许这有助于未来的开发人员......

于 2019-11-21T10:24:45.850 回答