• 技术文章 >后端开发 >php教程

    PHP如何为函数执行设置超时

    angryTomangryTom2019-10-15 09:33:45转载881
    如何防止一个函数执行时间过长呢?在PHP里可以用pcntl时钟信号+异常来实现。

    代码如下:

    <?php
    declare(ticks = 1);
    function a()
    {
        sleep(10);
        echo "a finishi\n";
    }
    function b()
    {
        echo "Stop\n";
    }
    function c()
    {
        usleep(100000);
    }
    function sig()
    {
        throw new Exception;
    }
    try
    {
        pcntl_alarm(1);
        pcntl_signal(SIGALRM, "sig");
        a();
        pcntl_alarm(0);
    }
    catch(Exception $e)
    {
        echo "timeout\n";
    }
    b();
    a();
    b();

    原理是在函数执行前先设定一个时钟信号,如果函数的执行超过规定时间,信号会被触发,信号处理函数会抛出一个异常,被外层代码捕获。这样就跳出了原来函数的执行,接着执行下面的代码。如果函数在规定的时间内,时钟信号不会触发,在函数结束后清除时钟信号,不会有异常抛出。

    更多PHP相关知识,请访问PHP中文网

    以上就是PHP如何为函数执行设置超时的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:rango.swoole.com,如有侵犯,请联系admin@php.cn删除
    专题推荐:pcntl 时钟信号 异常
    上一篇:PHP+Swoole的闭包写法 下一篇:安装及配置eaccelerator-0.9.5加速PHP-5.2.1
    PHP编程就业班

    相关文章推荐

    • php设置页面超时时间的方法• 解决php运行超时的方法• 让php超时的办法是什么• php接口超时如何处理

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网