类别:PHP教程 / 日期:2019-12-01 / 浏览:188 / 评论:0

怎样防备一个函数实行时候太长呢?在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相干学问,请接见ki4网!

以上就是PHP怎样为函数实行设置超时的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章