【问题标题】:Laravel redirect takes long time after request is finished请求完成后 Laravel 重定向需要很长时间
【发布时间】: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);

我想消除此重定向时间,但我找不到发生这种情况的原因。

感谢您的帮助!

【问题讨论】:

  • 在读取文件时,您的循环中是否有任何数据库查询?
  • 首先,我解析文件以获取所有行,以便构建一个包含行信息的数组。然后我阅读此表并在产品是否丢失时执行更新或插入。所以有两个循环:一个用于文件读取,另一个用于查询数据库。

标签: php redirect laravel-5


【解决方案1】:

我会检查服务器负载...您刚刚在两分半钟内对数据库执行了 10K 行。 13 分钟似乎有点高,但再试一次,然后尝试重定向离开那条路线......它会做同样的事情吗?如果是这样,很可能是服务器上的负载。

【讨论】:

  • 我也想过这个,但是在另一个页面上重定向时是一样的。此外,我可以在长时间加载期间检查其他页面(仅在 web preprod 上,因为 serve 命令似乎是单线程并且不能同时执行两个任务)。另外,如果我复制页面(并提前加载它),我会在原始页面仍在加载时得到响应。这似乎表明脚本完全结束了,不是吗?
猜你喜欢
  • 2020-10-17
  • 2018-01-15
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 2018-02-07
  • 2016-07-30
相关资源
最近更新 更多