как запустить в aiogram две функции выполняемые в бесконечном цикле
Как при запуске бота (на Aiogram) запустить в бесконечном цикле две асин.функции ?
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.enums.parse_mode import ParseMode
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram import types, F, Router
from aiogram.types import Message
from aiogram.filters import Command
from aiogram import Router
router = Router()
# _______________
import datetime
from datetime import datetime
import sys
import os
Token = 'test:xx12'
# Test new async fucns
async def Alert_notify_price_levels():
now_time = datetime.now()
print(f'start Alert_notify_price_levels: {now_time}')
await asyncio.sleep(10)
now_time = datetime.now()
print(f'end Alert_notify_price_levels {now_time}')
return 'func1'
async def find_support():
cur_time = datetime.now()
print(f'start find_support {cur_time}')
await asyncio.sleep(15)
cur_time = datetime.now()
print(f'end find_support {cur_time}')
return 'func2'
# _______________________________________________________
@router.message(Command("start"))
async def start_handler(msg: Message):
await msg.answer("Привет! Я помогу тебе узнать твой ID, просто отправь мне любое сообщение")
@router.message()
async def message_handler(msg: Message):
await msg.answer(f"Твой ID: {msg.from_user.id}")
async def main():
bot = Bot(token=Token, parse_mode=ParseMode.HTML)
dp = Dispatcher(storage=MemoryStorage())
while True:
# ---> \n как сделать чтобы эти функции заново запустились
res = await asyncio.gather(find_support(), Alert_notify_price_levels()) # get all return values of two this async_functions
logger.info(f'{res=}')
dp.include_router(router)
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types())
if __name__ == "__main__":
asyncio.run(main())