1

我的问题是:

HTTP 请求在 2 分钟后被取消,但服务器端处理仍在继续。

我有大量数据处理,我的数据库包含大量数据。所以我在处理屏幕上使用普通表单提交方法,当我检查浏览器控制台时,请求状态变为取消。但在服务器上,此请求取消后进程仍在继续.另外,当请求被取消时,将自动下载一个无法打开的文件,文件扩展名也不存在。我已将最大执行时间限制为无限制使用

set_time_limit(0);

,但它没有改变这种情况。在我的代码中,我编写了一些代码来将内容写入文件。所以在请求被取消后,文件写入操作继续。我正在尝试解决这个错误,但没有找到任何解决方案。请帮助我。我正在使用apache服务器。

请求状态 标题详细信息 我正在做的截图 过程:

 1.Selecting large number of data from a table which contains large number of data.
 2.Checks whether each record matches certian conditions
 3.Matching records are written into a file and that file is report generation
 4.Allowing the user to download the file after the process completion.

我听说如果客户端在特定时间后没有收到任何响应,那么它将取消对服务器的请求。这是我的问题吗?如果是这样,我该如何解决?

4

1 回答 1

0

在尝试向客户端发送数据之前,PHP 不会发现请求被取消。您应该能够通过定期执行此操作来解决此问题:

echo '    '; flush();

如果 ignore_user_abort 为假,这将结束您的脚本。

于 2013-08-08T09:35:27.953 回答