我正在排队一个命令(通过另一个命令),该命令如果由queue:work处理,则需要大约1分钟才能执行,但是如果通过工匠视野运行,则仅需要15秒。 我已经验证并且代码可以正确执行-此排队命令将文件中的数据加载到DB中,并且我确认在两种情况下数据均正确加载。
$ 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...
$
我还记录了在队列命令本身内部调用“重载”功能前后的时间,并且该日志确认了该时间,即,它与任何设置和拆卸活动均无关。 >
很高兴在需要时提供更多详细信息。 知道为什么会有这种区别吗?
答案 0 :(得分:0)
好,所以我已经确定了造成这种差异的原因:XDebug。 尽管我没有积极进行调试,但是在php.ini中禁用xdebug可以显着加快“工匠队列:工作”的速度。
虽然这显然是意料之中的,但对我来说,运行“ artisan地平线”以某种方式绕过xdebug和“ artisan quque:work”这一事实并不是新鲜事。
无论如何,也许这可以帮助未来的开发人员...