как асинхронную функцию поставить в очередь aiograma
есть функция которая выполняется не в хендлере, и надо ее добавить в асинхронный поток aiograma, просто функция выполняется 10 минут, и весь процесс стоит, я ее переписал на асинхроную но как добавить в поток ?
Ответы (1 шт):
Автор решения: Anaevskiy
→ Ссылка
Вот пример:
import asyncio
import aiogram
bot = aiogram.Bot("token")
dp = aiogram.Dispatcher(bot)
async def my_func():
while True:
print(1)
await asyncio.sleep(1)
async def on_startup(dp):
asyncio.create_task(my_func())
@dp.message_handler(commands=["start"])
async def start(message: aiogram.types.Message):
await message.answer("Hello")
if __name__ == "__main__":
aiogram.executor.start_polling(dispatcher=dp, on_startup=on_startup)
Аргумент on_startup отвечает за запуск асинхронной функции при старте бот, а уже метод create_task библиотеки asyncio запустит вашу задачу