如何在PHP中超过max_execution_time

时间:2015-04-25 07:30:25

标签: php performance time

在PHP中,我想运行一个需要2分钟计算的脚本,但我的max_execution_time只有30秒。
我无法在php.ini中更改我的max_execution_time,也无法调用shell_exec

我已经完成了我能想到的所有优化。 有什么想法吗?

4 个答案:

答案 0 :(得分:2)

即使您无法自行更改php.ini文件,也可以使用ini_set通过PHP代码更改选项。

您还可以尝试在代码中调用set_time_limit,重置当前时间计数器(这不会在安全模式下工作)。

如果这不起作用,请尝试将任务拆分为多个子任务并保存临时结果,以便您可以执行多次执行任务,从而绕过时间限制。

答案 1 :(得分:2)

" best"您可以选择将算法切割成较小的部分。 每个部分应在30秒内执行以避免超时。 这里有一些想法。

使用CURL:

  • [Script Start]调用run.php让计算20秒。
  • 将其保存到ID为
  • 的数据库中
  • 进行CURL调用run.php?resumeID = 384 [Script finish]
  • [脚本开始]检索统计数据并继续计算
  • 等......

使用CRON任务:

  • 每秒调用run.php。它将在您的数据库中选择一个任务,然后标记为"正在进行中"。 因此,下次run.php调用它将不会选择"正在进行的任务"
  • 经过20多年的计算,将脚本的统计数据保存在数据库中并更改正在进行的""国旗为假。
  • 下一次调用run.php将选择任务并继续处理
  • 等......

答案 2 :(得分:2)

您也可以在.htaccess文件中设置

将以下行添加到.htaccess文件

php_value max_execution_time 200 

答案 3 :(得分:1)

使用

ini_set('max_execution_time', 100);