【发布时间】:2019-05-10 10:24:01
【问题描述】:
我需要处理超过 10K 行的 csv 文件。它表示产品列表,目标是更新数据库中的产品表。
我的问题是全局工作流程大约需要 15 分钟,但望远镜显示的持续时间仅为 15Kms(约 2.5 分钟)。
所以我的问题是:为什么在请求结束后重定向需要 13 分钟?
这个问题出现在使用 php artisan serve 的本地开发环境中,但也出现在开发在线环境 (VPS) 上。那似乎不是因为服务命令。
我已经放弃了控制器方法的每个步骤,并确认了 Telescope 所说的内容:控制器在 2.5 分钟结束。所以在那之后,它除了等待什么都不做。
重定向动作在控制器末尾处理如下:
return back()->withErrors($errorKey, $errorMessage);
我想消除此重定向时间,但我找不到发生这种情况的原因。
感谢您的帮助!
【问题讨论】:
-
在读取文件时,您的循环中是否有任何数据库查询?
-
首先,我解析文件以获取所有行,以便构建一个包含行信息的数组。然后我阅读此表并在产品是否丢失时执行更新或插入。所以有两个循环:一个用于文件读取,另一个用于查询数据库。