@RMate

Можете помочь найти магию в php sdk ВКонтакте?

Всем привет.

Есть VK API, у него ограничение - не больше 3х запросов в секунду. Кто нарушит - получит код ошибки 6, и уведомление
Too many requests per second


Так же есть официальный VK PHP SDK

Используя его я делаю такой запрос
$vk = new \VK\Client\VKApiClient(VK_API_VERSION);
  for ($i = 0; $i < 30; $i++) {
    $vk->messages()->send(....);
  }


Время выполнения скрипта занимает ~10 секунд, ошибок нет. Что говорит о том, что эта библиотека сама следит за лимитами.

Теперь самое интересное, я проверил всё, и глазами код читал, и поиском всякие sleep'ы, и другие ключевые слова искал - ну нет там нигде ни слова о контроле количества отправляемых запросов.

Подскажите, пожалуйста, я такой невнимательный, или вконтакте работает на магии?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 2
erniesto77
@erniesto77
oop, rb, py, php, js
В качестве sleeps у вас играет роль сам запрос. PHP код выполняется последовательно. Тут зависит от быстроты выполнения итерации, иногда повезет и итерация тормознет на четверть секунды. А иногда наоборот выполнится быстро и too many requests ловите ошибку
Ответ написан
HemulGM
@HemulGM
Delphi Developer, сис. админ
Обертка не следит за лимитами и ты просто попадаешь в нужный интервал из-за медленных запросов (подключений).

Так что нет тут магии. В будущем сам следи за лимитами. (к слову о лимитах, для message.send они другие)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
glaphire
@glaphire Куратор тега PHP
PHP developer
Эти ограничения заложены со стороны инфрастуктуры/веб-серверов вконтакте, в сдк этого и не должно быть - это просто прослойка кода для облегчения работы
Ответ написан
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
opium
@opium
Просто люблю качественно работать
Так вы их последовательно шлете и удивляетесь?
Ну как бы пример из жизни есть тонкий туннель в него пролезает один человек, вы отправляете 30 человек последовательно по одному и они пролезают и удивляетесь как они 30 штук влезают в туннель шириной в одного
Ну будьте дурачком, запустите 30 запросов в тредах и сразу увидите ожидаемый результат
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы