Можно ли установить ограничение по времени для блока кода?
Можно ли запустить блок кода (возможно, просто вызвать функцию) и, если он не выполняется в течение определенного времени, пропустить его.
//give this function 10 seconds to execute
$value = mega_function();// could take anything from 1-1000 seconds
//if 10 seconds have passed and the value is still not set, abort it and set $value = false;
2 ответа:
Нет. Вам придется либо
Вызов функции внутри внешнего файла с помощью curl или
file_get_contents()
- вы можете установить таймаут тамСледите за временем внутри
mega_function()
иreturn()
, если это необходимо.Что делает
mega_function()
?
Попробуйте заглянуть в потоки, но это может быть неудобно делать что-то подобное в PHP:)
Посмотрите на http://php.net/manual/en/function.pcntl-fork.php и все связанные с pnctl функции для создания childs, отправки сигналов между ними, ожидания завершения дочерних потоков или уничтожения потоков.