我正在尝试使用基于PHPExcel的http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/库将excel文件导入Laravel 5.4上的MySQL数据库。
我需要导入的文件非常大:至少50k行,100列,我需要为每一行创建一个数据库条目。
我认为我可能在导入过程中遇到一些问题,所以我开始使用块,但即使在1块,我收到以下错误消息:
超过最长执行时间180秒。
我试图增加max_execution_time
变量和内存限制,但我仍然无法通过导入。
这是我正在使用的代码:
Excel::filter('chunk')->load($request->file('source_file')->getRealPath())->chunk(1,function ($results) {
foreach($results as $row) {
TaskMeta::create([
'task_id' => $row['task_id'],
'col2' => $row['column2'],
... etc, rest of the 100 columns ommited for clarity
]);
}
});
顺便说一句,我正在我的Homestead环境中进行本地测试。我需要一个可以在生产服务器上运行的解决方案。
答案 0 :(得分:0)
如果要为此脚本禁用超时,请使用:
set_time_limit(0)
...并监控您的流程以确保它不会挂起。甚至可以将它放入一个命令并使用$ this-> info()输出每次迭代的行号,这样你就可以知道它在文件中的位置。
这样你就可以覆盖任何可能阻碍你的.ini配置:)