Могу ли я установить ограничение по времени для блока кода? - PullRequest
5 голосов
/ 11 мая 2011

Можно ли запустить блок кода (возможно, просто вызвать функцию) и, если он не выполняется в течение определенного времени, пропустить его.

//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 ]

7 голосов
/ 11 мая 2011

Нет.Вам нужно будет либо

  • вызвать функцию из внешнего файла, используя curl, либо file_get_contents() - вы можете установить таймаут там

  • Сохранитьотслеживание времени внутри mega_function() и return() при необходимости.

Что делает mega_function()?

0 голосов
/ 11 мая 2011

Попробуйте заглянуть в потоки, но может быть неловко делать что-то подобное в PHP :)

Посмотрите на http://php.net/manual/en/function.pcntl-fork.php и все функции, связанные с pnctl, для создания дочерних элементов, отправки сигналов между ними,ждет, пока ребенок закончит или убивает темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...