Многопоточность и asyncio

У меня есть бот на aiogram, который должен, помимо отвечания на команды, делать регулярную рассылку (раз в N минут отправить сообщение). Вариант с созданием параллельного потока-демона не работает (использовал threading) Что делать?

from threading import Thread
def messages():
    while True:
        рассылка
msgs = Thread(target=messages(),daemon=True)
msgs.start()

после этого он входит в цикл в потоке и дальше не идёт в отдельном тестовом файле аналогичные потоки адекватно работают друг с другом, оба файла в одной папке (если это важно, это папка с venv)

бот запускается

dp = Dispatcher()
bot = Bot(token=Token)    
async def main():
    await dp.start_polling(bot)
asyncio.run(main())

Ответы (1 шт):

Автор решения: eri

Перед start_polling

asyncio.create_task(messages())

Сама функция

async def messages():
    while True:
        await asyncio.sleep(0)
        Рассылка

И треды не нужны. Нулевой сон для разблокировки лупа.

→ Ссылка