0

在我的网络服务上,允许用户创建表单并让他们的朋友或同事与他们一起创建数据。收集的数据可以作为 zip 文件流下载。有时用户拥有大量数据(高达 2gb),服务器出于显而易见的原因简单地终止了 php 进程。是否有可能在没有 flash、java 的客户端上创建这样的文件(顺便说一句,java 对我的大多数用户都不起作用)等?

4

3 回答 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 回答