当前位置: 首页 > 面试题库 >

限制函数或命令PHP的执行时间

巫墨一
2023-03-14
问题内容

您好,可以仅将时间限制设置为命令或功能,例如:

function doSomething()
{
    //..code here..

    function1();

    //.. some code here..

}

我只想将时间限制设置为function1。

有退出set_time_limit,但我认为这将整个脚本的时间限制。有人有想法吗?


问题答案:

set_time_limit()确实在全局运行,但是可以在本地重置。

设置允许脚本运行的秒数。如果达到此目的,脚本将返回致命错误。默认限制为30秒,如果存在,则为php.ini中定义的max_execution_time值。

调用时,set_time_limit()从零重新启动超时计数器。换句话说,如果超时是默认的30秒,并且在脚本执行后的25秒内执行了诸如set_time_limit(20)之类的调用,则该脚本将在超时之前运行总计45秒。

我尚未对其进行测试,但是您可以在本地进行设置,当您离开

<?php
set_time_limit(0);  // global setting

function doStuff()
{
    set_time_limit(10);   // limit this function
    //  stuff
    set_time_limit(10);   // give ourselves another 10 seconds if we want
    //  stuff
    set_time_limit(0);    // the rest of the file can run forever
}

// ....
sleep(900);
// ....
doStuff();  // only has 10 secs to run
// ....
sleep(900);
// ....

set_time_limit() …
确定脚本已运行的最长时间时,不包括执行脚本之外发生的活动所花费的任何时间,例如使用system()进行系统调用,流操作,数据库查询等。
在测量的时间是真实的Windows上不是这样。



 类似资料:
  • 本文向大家介绍PHP 将脚本执行限制为命令行,包括了PHP 将脚本执行限制为命令行的使用技巧和注意事项,需要的朋友参考一下 示例 函数php_sapi_name()和常数PHP_SAPI都返回接口的类型(小号erver API)正在使用由PHP。通过检查函数的输出是否等于,可以将它们用于限制脚本在命令行中的执行cli。 该drupal_is_cli()函数是一个函数示例,该函数检测是否已从命令行执

  • 函数名称:执行 shell 命令 函数功能:执行 shell 命令 函数方法 os.execute(command) 参数 类型 必填 说明 command string 是 需要执行的 shell 命令

  • 可以限制并行运行的函数的最大数量吗? 我看了留档,发现了这个: 当多个触发事件发生的速度快于单线程函数运行时处理它们的速度时,运行时可能会并行多次调用该函数。 如果函数应用正在使用消耗托管计划,函数应用可以自动横向扩展。函数应用的每个实例(无论应用是在消耗托管计划还是常规应用服务托管计划上运行)都可能使用多个线程并行处理并发函数调用。 每个函数应用程序实例中并发函数调用的最大数量因使用的触发器类型

  • 问题内容: 我有一个看起来像 当我手动运行它时效果很好,但是当我运行它时效果不佳。浏览日志后,我看到 看起来好像是百分号的问题,但是页面甚至根本不包含百分号,因此我认为它们还不错。 问题答案: 您必须使用反斜杠转义百分号: 来自: “第六”字段(行的其余部分)指定要运行的命令。该行的整个命令部分,直到换行符或%字符,将由/ bin / sh或crontab文件的SHELL变量中指定的shell执行

  • 问题内容: 我有一个CentOS 5.7 linux服务器,并使用php5.3.x。 在pfSense系统上,您可以使用php网页重新启动需要root权限的服务。 我正在尝试做类似的事情,我已经写了一些php代码来执行shell命令。例如,重新启动sshd服务: 我试图通过exec函数执行该命令,但是它需要root权限,但是我们拥有apache用户权限。 我遇到了一些解决方案: “以root用户运

  • 我正在处理我的一个项目。我正在windows机器上使用XAMPP开发该项目。这就是我面临的问题。我需要在服务器上执行shell脚本,并在网页上显示结果。问题是,大多数脚本都按预期运行,但我无法获得以下命令的输出:, ls, cat, pwd 因为这些命令返回给我一个空白数组。 我找不到确切的问题。