Hi David,

On Sat, 16 May 2020, David Rodrigues wrote:

> Currently we can use set_time_limit() to specify that our script will 
> run by some seconds before we get "fatal error: maximum execution time 
> of 1 second exceeded". And we can't catch it and keep running.

You can set-up a shutdown handler though, which will get called.
> 
> I believe that it is interesting to create a function that is able to 
> limit processing and stop when the time limit is recovered.
> 
> $completeRun = set_time_limit_callback(function () {
>     sleep(2);
> }, 1);

sleep(2) should not trigger a 1 second timeout. Currently the time 
counted for max_execution_time timeouts is CPU time, not wall time.

You can probably implement this already with PHP's tick functionality 
(https://www.php.net/manual/en/function.register-tick-function.php), as 
long as the code in the anonymous function does PHP statements/function 
calls.

If your problem is waiting for an external resource to be available 
(database call, http call), then instead you should be able to use 
functionality of these services to handle your timeouts.

cheers,
Derick

-- 
PHP 7.4 Release Manager
Host of PHP Internals News: https://phpinternals.news
Like Xdebug? Consider supporting me: https://xdebug.org/support
https://derickrethans.nl | https://xdebug.org | https://dram.io
twitter: @derickr and @xdebug

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to