qw1klyy, да, нужен. Но ему не место в обработчике команды. Кури asyncio.create_task().
На крайний случай, храни ссылку на полученный таск в глобальной переменной, и проверяй её содержимое при выполнении команды. Тогда ты сможешь понять, выполняется у тебя сейчас цикл или нет, и выполнить соответствующее действие (ну или не выполнять).
qw1klyy, угу, поддерживаю Everything_is_bad. Запускай цикл проверки непосредственно при старте бота, клади последний результат куда-то (в глобальную переменную, в БД или ещё куда), а по команде просто бери этот результат и выдавай пользователю.
Впрочем, в коде я не вижу, зачем тебе вообще цикл. Проверка баланса - разовое действие вроде.
С помощью получению номера на котором находится строка с e-mail он получает пароль блягодаря getline(из другого файла), но когда я ввожу верные данные он выводит ошибка.
А теперь ещё раз, медленно, и по-русски, пожалуйста.
Если быть точным, то не для выделения памяти, а для получения экземпляра объекта. Причем не обязательно через создание нового экземпляра того же класса.
Поясни на минутку, что ты понимаешь под пулом соединений?
Если это активные соединения, то их хранить вне процесса не имеет смысла, это же, в конечном итоге, обёртки над дескриптором сокета.
Если это неактивные соединения, то их не имеет смысла хранить вообще, они непригодны к использованию. Всё равно придётся создавать новые.
Pavel-Kosii, прописывать декораторы, используя один и тот же объект dp. И да, следить, чтобы они друг другу не мешали. Т.е. если у тебя в двух файлах есть обработчик на одну и ту же команду - работать будет только один.
Pavel-Kosii, ну что и требовалось доказать, у тебя три отдельных бота с разным набором обработчиков, но запускаешь ты только один, из main. Только этот бот и работает.
Используй мой подход, только внимательно смотри, что прописываешь в декораторах. Например, просто @dp.message_handler() будет обрабатывать ЛЮБЫЕ сообщения, а потому отрубит остальные обработчики. Нужно задать команду, или отключить декоратор у функции.
Антон Вебсайтовский, ты какую-то сумятицу несешь.
У тебя задачи короткоживущие или долгоживущие в сравнении с интервалом их запуска?
Если задача живёт заметно меньше интервала запуска, то смотри мой ответ.
Если задача живёт столько же или больше, чем интервал её запуска, то тогда поясни, что ты вообще пытаешься сделать? У тебя же будут накапливаться активные задачи.
Rise, это интерпретатор/транспилятор для питона, написанный на JavaScript. =)
Интересно было бы посмотреть на бенчмарки этого чуда - насколько оно тормознее уже тормознутого браузерного JS.
ghg05, в комментариях всё довольно чётко написано. Хотя я без понятия, нужно ли делать разные request_id для разных запросов. Если нужно, то можно так: перенеси определение sign_message() выше, где-то рядом с host = ..., а код начиная с request_id = ... и до конца заверни в цикл.
На крайний случай, храни ссылку на полученный таск в глобальной переменной, и проверяй её содержимое при выполнении команды. Тогда ты сможешь понять, выполняется у тебя сейчас цикл или нет, и выполнить соответствующее действие (ну или не выполнять).