首页 > 解决方案 > 在脚本中多次调用 ini_set

问题描述

我想根据我希望它们运行的​​持续时间增加特定脚本的超时,而不影响默认超时。这是因为我的一些脚本会定期运行一个循环来查询我的数据库并返回信息以进行处理。在许多情况下,循环(不是处理)可能会运行很多分钟。请注意,这些是 exec 调用的后台脚本,不会影响用户等待响应,因此没有问题。

我的想法如下:

  1. 在第一次循环迭代中,从数据库中获取一些数据并计算该脚本预计运行的秒数并将其存储在 $duration 中。我如何计算持续时间并不重要 - 只需假设返回以秒为单位的值
  2. 根据 $duration 使用小缓冲区设置此脚本的最大执行时间,如下所示: ini_set('max_execution_time', $duration + 1);
  3. 在下一次和后续迭代中,如果 $duration 大于当前值,则再次运行步骤 2 中的代码

我的主要问题是是否可以/可以在脚本中多次调用带有“max_execution_time”的ini_set(在某些情况下,这可能是数百次)。

一个相关的问题是上述方法是否是最好的方法,或者是否有更好的选择。

我已经检查了 SO 和 PHP 手册页,找不到任何说您不能多次运行 ini_set 的内容,但是没有具体说明您是否可以/应该(或者在调用之后它是否可以工作)第一次)。

标签: php

解决方案


推荐阅读