Частота обращений к VK API

800
15 марта 2017, 17:24

Обращаюсь к VK API раз в секунду (Thread.sleep(1000)), пишу несколько сообщений подряд боту (быстро), и получаю эксепшн: ApiTooManyException: Too many requests per second (6): Too many requests per second.
Да, понятно, что мои сообщения слишком часто отправляются, но ведь не приложение же это делает, оно раз в секунду обращается, а допустимая частота - 5 обращений в секунду. Так в чём проблема? Это я один пишу, а если будут одновременно писать 1000 пользователей? Спасёт ли Thread.sleep?
Возможно, я глупо реализую таким способом, буду благодарен за любую подсказку.

Answer 1

Из официальной документации

3. Ограничения и рекомендации

3.1. Частотные ограничения

К методам API ВКонтакте (за исключением методов из секций secure и ads) можно обращаться не чаще 3 раз в секунду. Если логика Вашего приложения подразумевает вызов нескольких методов подряд, имеет смысл обратить внимание на метод execute. Он позволяет совершить до 25 обращений к разным методам в рамках одного запроса.

Для методов секции ads действуют собственные ограничения, ознакомиться с ними Вы можете на этой странице.

Максимальное число обращений к серверным (secure) методам зависит от числа пользователей, установивших приложение. Если приложение установило меньше 10 000 человек, то можно совершать 5 запросов в секунду, до 100 000 — 8 запросов, до 1 000 000 — 20 запросов, больше 1 млн. — 35 запросов в секунду.

Если Вы превысите частотное ограничение, сервер вернет ошибку с кодом 6: "Too many requests per second.".

3.2. Количественные ограничения

Помимо ограничений на частоту обращений, существуют и количественные ограничения на вызов однотипных методов. По понятным причинам, мы не предоставляем информацию о точных лимитах.

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

READ ALSO
В чем разница между Comparable и Comparator?

В чем разница между Comparable и Comparator?

Получается, это дублирующие друг друга вещиМожет, есть какие-то реальные различия?

404
Как прочитать файл txt на java

Как прочитать файл txt на java

Есть однострочный txt файл

313
Selenium Drag And Drop не работает на Jenkins

Selenium Drag And Drop не работает на Jenkins

Проблема в следующем: Есть автотест который должен выполнять Drag&Drop элементов в определенном порядкеDrag&Drop реализован в тесте следующим...

327
Как исправить ошибку с mockito?

Как исправить ошибку с mockito?

Добрый деньПри написании тестов, код которых ниже:

394