Как изящно обрабатывать сбитый API - PullRequest
0 голосов
/ 17 июня 2009

Сегодня, когда твиттер отключен, я думал о том, как лучше всего обрабатывать вызовы API, когда он не работает. Если я использую CURL для вызова их API, как я могу заставить скрипт не работать быстро и обрабатывать ошибки, чтобы не замедлять работу приложения?

Ответы [ 3 ]

2 голосов
/ 17 июня 2009

Используйте curl_getinfo , чтобы получить код ответа cURL или длину контента и сравнить их

$HttpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
2 голосов
/ 17 июня 2009

Возможно, используйте своего рода кеш, независимо от того, включен ли Twitter или нет. Записывайте неверные ответы от API в базу данных или файл на стороне сервера. Как только вы получите два / три / несколько других недопустимых ответов подряд, отключите все запросы к API на х количество времени.

Через x времени попытайтесь выполнить запрос, если он все еще не работает, снова отключите на x минут.

Если ваш сервер может запускать задания CRON, рассмотрите возможность создания скрипта, который проверяет API на предмет правильного ответа каждые несколько минут. Если он обнаружит, что он не работает, отключите запросы, пока он не будет восстановлен. По крайней мере, в этом случае сервер будет выполнять тестирование, и пользователи не должны быть морскими свинками.

2 голосов
/ 17 июня 2009

Использование curl_setopt

curl_setopt($yourCurlHandle, CURLOPT_CONNECTTIMEOUT, '1'); // 1 second

Если вы используете curl> = 7.16.2 и PHP> = 5.2.3, существует CURLOPT_CONNECTTIMEOUT_MS

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