Opencart出口工具窒息了大约12,000种产品

时间:2013-01-19 19:55:04

标签: php export-to-excel opencart phpexcel

我正在使用this extensionour website上的产品数据库执行导出/导入。该网站非常活泼 - 快速加载,在杀手级服务器上,除产品导入/导出外,一切功能完美无缺。

一切都很好,直到我们在目录中有大约12,000种产品。现在,产品导入似乎正常。问题是,出口产品很窒息。这是发生了什么...点击导出,挂起大约10-12分钟(在此期间网站关闭,除非我通过CLI终止进程),然后转到“找不到页面”错误,同一链接管理员导出功能正在访问。

技术数据&我尝试或考虑过的东西......

  • 可以下载导入导出代码here。 Opencart基于MVC框架,因此控制器和模型显然是重要的文件。

  • 我已升级原始插件,以使用绝对最新版本的PHPExcel和Pear库,其中包含OLE和Spreadsheet扩展名 - 两者均由导入/导出模块使用。

  • PHP.ini设置被最大化 - 允许最多8 GB的RAM,post_max_size,最大上传和所有其他设置几乎被最大化。服务器正在运行带有多个SAS硬盘的双四核Xeon,平均处理器使用率约为3%。所以,它不是服务器,除非我遗漏了一些东西,否则问题的根源不是php设置。

  • 错误日志中没有错误表明代码中存在任何特定问题。事实上它之前正在工作,现在当数据库中有超过12k种产品时,在导出产品时会锁定。

  • 我尝试修复产品表,优化数据库,然后重新安装基础Opencart框架。

我意识到这是一个非常普遍的问题,但我的智慧结束了。我不会从头开始编写自定义导入/导出模块来解决这个问题。只是希望有人能够解决一些问题(扩展作者无法回答这个问题)。我从上到下选择了这个东西,找不到任何理由为什么它不会像它应该的那样工作。

2 个答案:

答案 0 :(得分:0)

对于较大的进口,10-12分钟是相对较短的时间。我已经在45分钟前看到它们持续存在于具有足够RAM的专用服务器上。它与你的网站在上传/导入期间完全没有响应的问题有同样的问题。问题是使用excel并解码保存的excel表中的所有值的效率低下。我确实为1.4.X上的客户端定制了一个高效版本的代码,但这并不是很漂亮,并且进行了大量的调试。实际导出效率非常低,只是将所有表连接在一起并占用大量内存(如果我没记错的话,超过1.8GB)。通过选择较小的重复行并分别解析它们然后将它们插回到数组中以用于导出数据,大大减少了这一点。这是多么快,这是非常令人难以置信的

答案 1 :(得分:0)

解决方案比我想象的要简单。

实际适用于大型产品数据库的导出工具(当然还有导出为CSV)。

这是the link