SerenePawn
@SerenePawn

Ограничить питону принятие команд во время выполнения?

Суть в том, что разрабатываю бота. Но у него на каждую команду должны быть задержка (т.е. - один человек вызывает - другой может вызвать через 5с, условно). Костыли вроде time.sleep даже не помогают: оно спит, просыпается, и начинает выполнять то, на что запрос был еще давным-давно. Можно ли как-то сбрасывать "очередь"? И как вообще это лучше реализовать?
Что усложняет происходящее (лично для меня вообще голову плавит), используется еще и asyncio
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
как вариант, использовать что-то типа redis или memcached то можете выстроить очередь и задать время жизни на ключик. как только ключика нет в памяти то команду можно выполнять, если ключик есть, то берем время остатка жизни на ключ и сообщаем пользователю что надо подождать N времени
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
deepblack
@deepblack Куратор тега Python
https://en.wikipedia.org/wiki/Token_bucket
Алгоритм более универсален, чем может показаться с первого взгляда.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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