Проверить, были ли достигнуты пределы YQL? - PullRequest
6 голосов
/ 11 мая 2010

Есть ли способ (кроме необходимости добавления пользовательского кода) проверить, превысил ли мое приложение допустимые пределы YQL? (Не уверен, что в моем случае применяется лимит для каждого приложения или для каждого IP-адреса) Я предполагаю, что все запросы будут терпеть неудачу после того, как лимит будет достигнут, но я хотел бы быть проактивным в добавлении мер для предотвращения этого.

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

Ответы [ 2 ]

4 голосов
/ 07 ноября 2010

К сожалению, код ошибки 999 также возвращается в других ситуациях, поэтому он не является надежным индикатором достижения часового лимита в 10 000.

Пример ответа от Yahoo / YQL:

HTTP/1.1 999 Unable to process request at this time -- error 999
Date: Sun, 07 Nov 2010 13:46:10 GMT
Expires: Thu, 01 Jan 1970 22:00:00 GMT
Cache-Control: no-cache, private
Cache-Control: no-store
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html;charset=UTF-8
Age: 0
Transfer-Encoding: chunked
Connection: keep-alive
Server: YTS/1.17.21

Думаю, было бы неплохо, если бы YQL мог вернуть поле заголовка с оставшимися вызовами YQL за час, как это делает Twitter.

Соответствующие части заголовка ответа HTTP API Twitter:

HTTP/1.1 200 OK
Date: Sun, 07 Nov 2010 13:52:18 GMT
X-RateLimit-Limit: 150
X-RateLimit-Remaining: 147
X-RateLimit-Class: api
X-Revision: DEV
X-RateLimit-Reset: 1289141505
3 голосов
/ 27 мая 2010

Если вы превысите почасовой допуск в 10 000 обращений, вы получите ошибку с кодом 999 - напишите свой код соответствующим образом, чтобы избежать блокировки.

...