asyncio.sleep(60*15)
Суть в том, что пользователи могут вызывать ее много раз и функции накапливаются.
На сколько, условно, 50 таких ожиданий нагружают программу или нагрузки вообще нет?
А что делает функция?
Отправляет сообщение Ожидает Отправляет сообщение Это кратко, разумеется функционал не бесполезен. Знаю как реализовать иначе, но думаю может ли из-за этого быть нагрузка?
Конечно будет нагрузка
Чем больше таких "замороженных" процессов в оперативе, тем больше они ее сожрут. Замерять нужно только тебе Я бы на твоём месте сделал это все через БД, и не ебался бы так
Но суть в том, что нагрузка идёт лишь на ОЗУ?
Что у тебя там понаписано я не знаю, но поток висит на оперативе, да
Если там именно sleep, а не чтото еще, то лишней нагрузки по процессору не будет. Однопоточное же - в этом весь смысл и есть. Но оперативная память разумеется расходоваться будет - на хранение контекста каждого вызова. Энивей, такую задачу лучше всего реализовывать одной корутиной и очередью сообщений. Причин несколько: 1. Во первых, правильно управлять кучей запущенных независимых тасков сложно, сложно их правильно и вовремя останавливать, сложно сделать правильный выход из всех при перезапуске. В итоге - утечка ресурсов. Не только памяти, но и логических ресурсов - у тебя кто-то куда то отправляет, а ты не знаешь кто и куда. 2. Стоит помнить про лимиты телеграма - при большом количестве таких процессов - это станет очень актуально.
Обсуждают сегодня