【问题标题】:Expanding PHP execution time limit扩大 PHP 执行时间限制
【发布时间】:2011-08-03 19:32:40
【问题描述】:

我对 PHP 的执行时间限制有疑问。我需要运行脚本数小时发送 HTTP 请求。这些请求必须分开一段时间,所以这就是为什么整个事情需要几个小时。有人有使用下面的行为 PHP 设置这种时间限制的经验吗?例如:

ini_set('max_execution_time', 28800);    // 8 hours

奇怪的问题,我知道,但请告诉我这是否可行。蒂亚!

更新:我打算从浏览器中尝试一下。我不熟悉从命令行运行 PHP 脚本。我应该研究一下。我确实找到了另一种方法来获取可以从 HTTP 请求中检索到的信息;事实证明,我们有一个数据库,其中一些信息已经在本地长期积累。

【问题讨论】:

  • 我通常使用 php 从命令行(即没有网络服务器)执行此操作,根本没有时间限制
  • 您也可以使用 flush() 和 ob_flush() 函数。用于刷新输出缓冲区。并使用 set_time_limit(0)

标签: php time limit execution


【解决方案1】:

您是从浏览器还是从 CLI 运行它?如果来自 CLI(正如您应该使用此类脚本),则没有执行时间限制(即 max_execution_time 被硬编码为 0)

【讨论】:

  • 我从浏览器运行我的 PHP 脚本。如何从 CLI 运行它?
  • 打开控制台并输入:php yourScript.php
【解决方案2】:
set_time_limit(28800);

一些(共享)主机不允许这样做

我建议你记录你最后一次尝试的时间(unix 时间戳),并使用 cron 执行一个脚本来检查是否是发出下一个 HTTP 请求的时间,如果是,则更新时间戳在文件中到当前时间戳。

希望有帮助

【讨论】:

  • set_time_out() 不是 PHP 函数(您的意思是 set_time_limit()?)。从命令行执行的脚本(例如通过 cron)没有执行时间限制。
  • @chris 感谢您的告知,我在那里更正了函数名称,对于第二部分,OP 没有在任何地方说它的 CLI ...:-/
  • 不,但是如果您通过 cron 执行脚本,正如您的回答所暗示的那样。 :)
  • @chris 好吧,是的,你是对的,但是这里 cron 的目的不同,我并不是建议使用 set_time_limit(28800);使用 cron ......基本上运行脚本 8 小时的想法似乎效率很低,所以我建议运行小型 cron 并检查最后一个 HTTP 请求时间并相应地发出下一个 HTTP 请求......所以不要改变时间限制......而且脚本会很短。
  • @Pheonix,我在本地主机上运行它。 “骗局”确实遇到了我对如何实现这一点的研究,但这是我需要学习的东西。我不熟悉它。有人建议在 CLI 上运行这种类型的脚本,但我也不知道。我是一个 PHP 新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多