How to set timeout for function execution in PHP

angryTom
Release: 2023-04-07 16:02:01
forward
3090 people have browsed it

How to prevent a function from taking too long to execute? In PHP, you can use pcntl clock signal exception to achieve this.

The code is as follows:

<?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();
Copy after login

The principle is to set a clock signal before the function is executed. If the execution of the function exceeds the specified time, the signal will be triggered. Signal processing The function throws an exception, which is caught by the outer code. This will jump out of the execution of the original function, and then execute the following code. If the function is within the specified time, the clock signal will not be triggered. The clock signal will be cleared after the function ends, and no exception will be thrown.

For more PHP related knowledge, please visit PHP Chinese website!

The above is the detailed content of How to set timeout for function execution in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:rango.swoole.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!