@LyoSU
Программист-любитель

Как правильно написать бота вк?

Как правильно написать бота ВК что бы обрабатывать сразу много запросов через CallBack? Есть небольшой бот нужно уже при таком ВК ругается на слишком частные запросы на отправку (6 и 9 ошибка).

Как работают крупные боты? Они отвечают мгновенно и ими пользоваться сотни пользователей одновременно.
  • Вопрос задан
  • 2700 просмотров
Решения вопроса 5
@danis_2014
Можно использовать например 3 вк приложения, которые будут работать с разных токенов и с разных ip, получается пауза между запросами уменьшится до 1/9 секунды. Так же использовать асинхронное выполнение, один поток (программа) будет получать сообщения и частично обрабатывать и уже передавать информацию второму потоку (программе), который будет готовить ответ, это нужно чтобы бот получал сообщения даже во время того как готовит ответ на другое сообщения. Можно использовать очередь, чтобы первый поток получал сообщения, добавлял их в очередь, получал сообщения и т.д. А второй поток если находит в очереди что-то, то обрабатывает, готовит ответ, отправляет, смотрит очередь и тоже по кругу.
Ответ написан
Комментировать
malinichev
@malinichev
PHP-Developer
Я бы на вашем месте сделал боту нагрузочное тестирование, а уже потом думал, стоит ли его улучшать...
Слишком частые запросы легко исправляются таймаутом между запросами... Сделайте очередь, добавляйте туда задачи, и обрабатывайте их поочерёдно. Это как хороший вариант
Ответ написан
Rou1997
@Rou1997
Самый верный способ - создание множества аккаунтов, причем, с разными IP.
А вот такое мероприятие, как отказ от публичного API в пользу "сниффинга", имеет иные преимущества, но данную проблему не должно решить, лимиты реализованы глубоко, и эта часть общая у открытого API и внутреннего back-end сайта.
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега ВКонтакте
♬♬
Не отвечайте мгновенно. Помещайте задания на ответ в очередь.

Так вы всегда впишетесь в лимит вк по числу вызовов методов апи на 1 токен, в секунду.
Ответ написан
makag
@makag
лимит на токен - 3 запроса в секунду. отсюда:
1) ставить паузу между запросами (0,34 секунды, например)
2) использовать бОльшее количество токенов
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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