【发布时间】:2017-11-19 21:50:12
【问题描述】:
问题
我正在使用Laravel 5.3 使用控制器代码中的函数将一个巨大的(大约>1 million rows 和>25 columns)制表符分隔文件导入mysql 数据库(我禁止在此处发布所有代码)。在处理文件时遇到以下错误:
Connection.php 第 720 行中的 FatalErrorException:
最长执行时间超过 30 秒
请注意,在失败之前,应用程序正在为不同的实例导入不同数量的行。
问题
我知道我们可以使用以下任一方法解决此问题:
这背后可能有多种原因,我更有兴趣知道它到底在哪里没时间了。 Laravel 没有提供比上述更多的细节。如果有人可以提供调试方法,我将不胜感激。有帮助的事情:
- 一个方法的所有请求的时间聚合吗?
- 内存过载会导致这种情况吗?
- 将数据分块并通过多个请求进行处理会有所帮助吗?
环境
Laravel 5.3-
Centos 7vagrant MySQL
【问题讨论】:
-
Is the time aggregate of all requests by a method?这是一个请求,我建议使用一些排队解决方案来处理长时间运行的计算,例如任何基于 AMQP 的计算。
标签: php mysql vagrant laravel-5.3 centos7