1

我对服务器响应有一些疑问max execution timeout

如果,我调用服务器 API 来运行一些巨大的东西并且无法在服务器php.ini max_execution_time配置中设置的时间限制内完成,那么服务器中的进程还会继续处理吗?- 如果是这样,它会处理无穷无尽吗?- 如果不是,是立即停止进程还是一一取消循环并完成所有进程。

以我的经验,当我 max execution timeout在本地主机上接收数据时,数据已经在处理中。

所以我不确定这是因为它一直停留在响应直到超时或服务器在抛出max execution timeout异常后继续运行。

4

4 回答 4

1

PHP 解释器针对 php.ini 配置运行脚本并检查 max_execution_time = 500 和 max_input_time = 500。

在 max_execution_time 之后 PHP 不会继续运行脚本。它只是“杀死”脚本。

也可能发生什么,脚本启动数据库查询,通常查询将在数据库服务器上运行,直到完成,无论脚本发生什么。此外,您可能会从 Web 服务器获得网关超时,对于 Apache,请检查 httpd.conf 并查找设置超时。

如果您需要运行一个需要时间执行的脚本,比您网站的其余部分要多得多,您应该调用一个网页,服务器上的 PHP,派生一个新进程作为后台执行脚本(PHP 部分需要很多时间),通过异步状态更新或发送电子邮件通知用户处理结束。您不应仅针对一个例外为所有脚本扩展 max_execution_time。

于 2018-02-28T13:59:02.010 回答
1

这实际上取决于您的 PHP 代码是什么样的。

通常代码执行会停止。您可以使用ignore_user_abort()更改此行为。

于 2018-02-28T12:51:09.020 回答
0

抛出异常后它不会继续。时间到了就直接剪了。

超时之前的任何事情都会被执行。如果不是专门为突出这一点而设计的。

于 2018-02-28T12:37:39.023 回答
0

在达到服务器 php.ini max_executiontime 配置中设置的时间限制后,该过程不会继续并立即停止,然后 php 会抛出最大执行超时异常。

如果要增加 php 文件中的最大执行时间,请在此处(如何增加 php 中的最大执行时间)。

于 2018-03-09T08:24:54.710 回答