在我的网络服务上,允许用户创建表单并让他们的朋友或同事与他们一起创建数据。收集的数据可以作为 zip 文件流下载。有时用户拥有大量数据(高达 2gb),服务器出于显而易见的原因简单地终止了 php 进程。是否有可能在没有 flash、java 的客户端上创建这样的文件(顺便说一句,java 对我的大多数用户都不起作用)等?
问问题
150 次
3 回答
0
增加脚本超时和内存使用量。
使用set_time_limit
函数文档
并ini_set
用于memory_limit
参数。
另一种解决方案是为客户提供文件部分。即给他们下载记录数量的限制。即 1-1000、1001-2000 等
于 2012-10-12T08:12:20.623 回答
0
创建一个在后台循环运行并检查新数据的工作外壳。如果它发现新的、未处理的数据,让它在后台准备下载。当数据准备好下载时,将其标记为“准备就绪”并通知用户(通过电子邮件,通过 ajax 轮询状态更新,但你喜欢)他的数据已被处理并可以下载。
您可以使用nice来限制用于该 shell 的 CPU 功率,以避免它消耗所有可用的处理能力并且您的站点变慢。
这正是我在我的一个项目中处理音频和视频处理的方式,并且效果很好。
于 2012-10-12T10:43:49.400 回答
0
如果您可以控制 Web 服务器进程,我建议您探索 x-send-file 作为解决方案。
本质上它将结束 php 进程并通过 http 服务器发送文件。这样,时间限制就不是问题了,而且你没有一个 php 实例。
于 2012-10-12T09:30:32.073 回答