2015-03-25 2 views
0

Наше веб-приложение в PHP делает серию завихрений для API в ответ на определенные запросы. Мы отлаживаем проблему, когда запрос иногда истекает через 30 секунд с кодом ответа 503 ... мы уверены, что это связано с тем, что один (или два) запросов на завивки занимает слишком много времени.Как диагностировать долговременные запросы на PHP-скручивание

В целях диагностики того, какие проблемы с завихрением являются проблемой, мы хотели бы регистрировать или отслеживать отдельные запросы. Мы размещаем приложение на экземпляре Heroku Cedar с дополнением Logentries, и мы также используем New Relic, но ни один из инструментов, похоже, не предлагает возможность регистрировать/отслеживать отдельных пользователей curl. как нам это сделать?

Я знаю, что мы могли бы устанавливать переменные с отметками времени и записывать их вручную ... но подозреваем, что мы будем «изобретать колесо». Каков наилучший способ сделать это, желательно, не возиться с нашей базой кода.

ответ

0

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

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); //set it to 0 for infinity 
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds, increase that 

также не забудьте увеличить выполнение времени PHP скрипт сам:

`set_time_limit(0);//` to infinity for example 
+0

Где doees фактор XDebug в вашем примере выше ? Можете ли вы рассказать об этом? – emersonthis

+0

Вот если вы решили использовать xdebug для диагностики завитка. например, в curl вы можете установить curl_setopt ($ ch, CURLOPT_COOKIE, 'XDEBUG_SESSION = 1'); – unixmiah

+0

Перечитывая свой ответ ... можете ли вы немного объяснить, зачем/почему нужны два 'curl_setopt'? Являются ли они для установления тайм-аута соединения? Или для целей отладки? Я бы предпочел не увеличивать допуски, чтобы допускать медленные запросы. Скорее, я хотел бы определить, какие вызовы замедляют все (и, возможно, удаляют их). Имеет ли это смысл? – emersonthis

Смежные вопросы