170 похожих чатов

Такая штука же будет работать для ограничения интенсивности отправки сообщений

для aiogram:
async def waiter_init():
async def waiter_loop():
while True:
_ = yield
await asyncio.sleep(1)
waiter = waiter_loop()
await waiter.asend(None)

original_send_message = bot.send_message

async def send_message(*args, **kwargs):
await waiter.asend(None)
await original_send_message(*args, **kwargs)

bot.send_message = send_message
?

6 ответов

9 просмотров

А почему не asyncio.sleep? Например можно декоратором добавить к каждому таску Ну или я контекст вопроса не уловил. Пока мне кажется что код мог бы быть гораздо проще

Maxim-N Автор вопроса
Владимир
А почему не asyncio.sleep? Например можно декорато...

ну поспит отправка чуть-чуть только если придёт тысяча сообщений, вся тысяча будет спать параллельно

Maxim-N Автор вопроса
Владимир
Да, это я понимаю... хм я еще подумаю

я ошибся с порядком строк await waiter.asend(None) должна быть до await original_send_message(*args, **kwargs) иначе и от этого нагромождения толка не будет

Maxim N
я ошибся с порядком строк await waiter.asend(None)...

Может подойдет Lock для отправки сообщений и просто делать паузу прежде чем его отпустить? https://docs.python.org/3/library/asyncio-sync.html Я бы в эту сторону рыл)

Maxim-N Автор вопроса
Владимир
Может подойдет Lock для отправки сообщений и прост...

можно и так, но мой вариант мне больше нравится

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

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
это группа токсиков или тех кто помогает?
Ибрагим
9
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
Карта сайта