PHP скрипт, похоже, зависает во время сна - PullRequest
0 голосов
/ 09 марта 2011

У меня есть скрипт php, который запрашивает внешний API, который разрешает ограниченное количество запросов за период времени. Чтобы справиться с этим, я сплю свой сценарий в течение 60 секунд, если я получаю сообщение, что я достиг этого предела, а затем просыпаюсь и проверяю снова, повторяю это, пока не смогу получить больше данных от API.

Проблема, похоже, в том, что иногда во время сна (довольно редко) сценарий либо вылетает, либо никогда не возвращается. Я не уверен, что пока все, что я могу сказать, - это то, что сценарий не запускается и перезапускает обработку.

Я ищу какие-либо советы или идеи о том, что может происходить, поэтому у меня есть представление о том, что искать, чтобы это исправить.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

проверить максимальное время выполнения в php.ini

$time=ini_get('max_execution_time');
$slept=0;
while(!dataready()){
    sleep(1);
    $slept++;
    if($slept>=$time-4) die("script timed out");
}
0 голосов
/ 09 марта 2011

Можете ли вы опубликовать часть кода?

Поскольку вы не уверены, происходит ли сбой скрипта или он никогда не возвращается, возможно, есть другая область вашего скрипта, которая не выполняет команду sleepи просто заканчивает выполнение.

...