Ограничить питону принятие команд во время выполнения?
Суть в том, что разрабатываю бота. Но у него на каждую команду должны быть задержка (т.е. - один человек вызывает - другой может вызвать через 5с, условно). Костыли вроде time.sleep даже не помогают: оно спит, просыпается, и начинает выполнять то, на что запрос был еще давным-давно. Можно ли как-то сбрасывать "очередь"? И как вообще это лучше реализовать?
Что усложняет происходящее (лично для меня вообще голову плавит), используется еще и asyncio
как вариант, использовать что-то типа redis или memcached то можете выстроить очередь и задать время жизни на ключик. как только ключика нет в памяти то команду можно выполнять, если ключик есть, то берем время остатка жизни на ключ и сообщаем пользователю что надо подождать N времени
В моем случае правильнее было бы во время "перерыва" между командами просто пропускать мимо все команды. Реализовать с костылями, чтобы блокировались все команды - я представляю еще как, но вот чтобы на каждую команду по отдельности выставлялась эта блокировка я все еще не могу додуматься как.
Думаю, тут вопрос именно в asyncio, а нагружать дополнительно махину редисом не хочется, ибо тоже четкого решения этой задачи с ним не видно