1

我正在使用此扩展程序为我们网站上的产品数据库执行导出/导入。该站点非常快速-加载速度很快,在杀手级服务器上,除了产品导入/导出之外,所有功能都完美无缺。

在目录中包含大约 12,000 种产品之前,一切都运行良好。现在,似乎产品导入工作正常。问题是,出口产品令人窒息。这是发生的事情...单击导出,挂起大约 10-12 分钟(在此期间站点关闭,除非我通过 CLI 终止该进程),然后转到“找不到页面”错误,与管理员相同的链接导出功能正在访问。

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

  • 进口出口代码可以在这里下载。Opencart 基于 MVC 框架,因此控制器和模型显然是要查看的重要文件。

  • 我已经升级了原始插件以使用绝对最新版本的PHPExcel和 Pear 库,以及 OLE 和电子表格扩展——两者都被导入/导出模块使用。

  • PHP.ini 设置已达到最大值——最多允许 8 GB 的 RAM、post_max_size、最大上传,所有其他设置几乎都已达到最大值。服务器运行带有多个 SAS 硬盘的双四核 Xeon,平均处理器使用率约为 3%。所以,这不是服务器,除非我遗漏了什么,否则问题的根源不是 php 设置。

  • 错误日志中没有抛出表明代码中存在任何特定问题的错误。只是它以前工作的事实,现在在数据库中有超过 12k 的产品时在导出产品时锁定。

  • 我尝试修复产品表、优化数据库并重新安装基本 Opencart 框架。

我意识到这是一个非常普遍的问题,但我无能为力。我不会从头开始编写自定义导入/导出模块来解决这个问题。只是希望有人能解释一下(扩展作者无法回答这个问题)。我从上到下挑选了这个东西,找不到任何理由说明它不能按应有的方式工作。

4

2 回答 2

0

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

于 2013-01-19T20:57:42.117 回答
0

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

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

这是链接

于 2013-01-20T06:35:48.373 回答