【发布时间】:2014-06-18 19:42:08
【问题描述】:
我在使用 php 将大量数据导出到 csv 文件时遇到问题。
信息:
- 需要从数据库表(地址)中导出700000个地址列表。
- 服务器超时或内存不足
- 我正在使用多台服务器的项目
我的解决方案(我尝试了什么)
逐部分获取数据(从数据库中)处理此数据(fputcsv)将此部分写入临时文件 - 并通过Ajax 将信息发送给用户(向他显示已处理的百分比)。处理完最后一部分数据后,只需提供用户链接以下载此文件。一切都很好,我已经这样做了,这个解决方案对我有用 - 在我当地的环境中,但是
问题是 - project I'm working on working with multiple servers 所以我遇到了临时文件可以存储在不同服务器上的问题。
例如:
我有 3 台服务器:Server1、Server2 和 Server3。
我第一次使用limit 0 50000 从数据库中读取数据 - 处理它并将其保存到Server1 上的File.csv,下一次迭代limit 50000, 50000 可以保存在另一台服务器 Server2 - 这就是问题所在。
所以我的问题是:
我可以在哪里存储我处理过的临时 csv 数据,或者我可能遗漏了什么,我被困在这里,寻求建议。 每个建议或解决方案将不胜感激!谢谢。
更新
问题已解决
稍后我会发布我的解决方案
【问题讨论】:
-
不清楚多台服务器,你的意思是多台数据库服务器包含数据?
-
@Dagon 不,多个网络服务器
-
您可以使用/设置一个作业队列系统,其中实际工作由服务器上的后台任务完成,而不是 http 请求?也许beantalkd - lornajane.net/posts/2014/working-with-php-and-beanstalkd
-
@Amine Matmati,我想是的,但我不太了解它到底是什么
-
我希望这个教程系列对您有所帮助 - kamisama.me/2012/10/09/…
标签: php ajax export-to-csv