vk icon indicating copy to clipboard operation
vk copied to clipboard

Увеличение локального лимита запросов

Open ssankko opened this issue 5 years ago • 2 comments

Полагаю, что библиотека на это не рассчитана, но все же. У ВК есть довольно маленький лимит запросов, но они позволяют обойти его, используя execute. Возможно имеет смысл посмотреть в сторону какого нибудь локального пуллинга запросов.

К примеру каждые (условно) 200 мс проверять, есть ли что то в пуле, ожидающее отправки, затем упаковывать запросы в js код для метода execute и отправлять. При переполнении пула (25 вызовов API), отправлять их сразу.

Таким образом можно увеличить локальный лимит в 25 раз.

ssankko avatar Apr 25 '19 09:04 ssankko

@ssankkko Сам метод Execute в библиотеке реализован, так же есть хранимые процедуры, как то дополнительно обрабатывать можно, написать движок для конвертации текущих запросов в VKScript можно но я не хочу, по меньшей мере на текущем этапе, но идея мне нравится. Возможно когда нибудь в будущем я ее воплощу

inyutin-maxim avatar May 18 '19 20:05 inyutin-maxim

С методом execute всё непросто. Поскольку он, по сути, позволяет делегировать исполнение как минимум части своего кода на сервера ВК, они весьма знатно обложили его ограничениями. Какие-то ограничения объявлены явно (вроде "отдано может быть не больше 5Мб результата"), а какие-то нет, поэтому работа с методом это всегда усиленный дебаг и ловля блох. Одно из основных ограничений это ограничение на количество/качество исполняемых команд, когда разработчик должен понимать удельный вес и количество отдельных команд алгоритма, чтобы предсказать получится ли у него воспользоваться методом - в условиях непростых алгоритмов сделать это бывает непросто. У себя я не вижу ни одного случая, где бы я просто исполнял условный api.getUsers() и мог бы выиграть от обёртки, которая бы позволила в 25 раз увеличить производительность - почти всегда это более сложный код в виде сохранённых процедур, который каким-либо образом преобразовывает ответы ещё на серверах ВК для экономии трафика и собственных мощностей. В такой ситуации написание пулинга/обёртки для разработчиков представляется не самой важной задачей.

a-postx avatar Aug 23 '20 14:08 a-postx