@nakem

Как я могу настроить суточные лимиты для пользователей телеграм бота?

Я хочу настроить суточные лимиты пользования телеграм ботом. Как это происходит у меня в голове. Берем простую, бессерверную бд ключ-значения, например, https://github.com/boltdb/bolt. К сожалению, я не знаю как она по производительности себя покажет. Так как болт бд это по сути файл, который блокируется при записи. Асинхронно не получится иметь доступ. Если навалится на бота 15 человек одновременно, то скорость заметно просядет.
Для решение моей задачи я хочу записывать по каждому юзеру кол-во запросов, которые будут ему доступны. Ну и раз в сутки обновлять кол-во запросов для всех. Вот только с последним немного не знаю как сделать. Просто в коде запустить отдельно горутину на это или как-то по-умному.
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 2
@deliro
https://github.com/boltdb/bolt. К сожалению, я не знаю как она по производительности себя покажет.

Тебе хватит. Правда в репо английским по чёрному написано "This repository has been archived by the owner. It is now read-only.", поэтому использовать нужно https://github.com/etcd-io/bbolt

Так как болт бд это по сути файлы, которые блокируются при записи

Я, наверное, сейчас тебе всё представление о мире сломаю, но любая БД — это файлы

Если навалится на бота 15 человек одновременно, то скорость заметно просядет.

Кек. Если на бота навалится человек 15 миллионов, то да, скорость, возможно, просядет. Но в этом случае, держать бота на одном сервере — довольно странная идея, в любом случае, ведь первым ляжет канал или запросы в настоящую БД с данными

Для решение моей задачи я хочу записывать по каждому юзеру кол-во запросов, которые будут ему доступны. Ну и раз в сутки обновлять кол-во запросов для всех.

Обычно люди начинают разбираться в теме с изучения существующих решений по теме. Вы же не изучали математику, заново изобретая числа, аксиомы, не придумывали теоремы — это всё уже было. В чём тут разница? Гугли rate limiter, решений мильён
Ответ написан
zenwalker
@zenwalker
0xABADBABE
Не совсем понятно, зачем вам здесь БД. Реализуйте token bucket в памяти, уничтожайте его раз в сутки. Подход с горутиной сработает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы