Ты можешь использовать функцию EventLoop call_at:
https://docs.python.org/3/library/asyncio-eventloo...
К примеру тебе надо отправлять сообщение с определенным интервалом.
Получаем из текущего событийного цикла время, прибавляем к нему интервал -- это будет время вызова функции.
Далее создаем задачу на вызов в это время.
Функция call_at принимает параметр времени, когда вызвать функцию, и саму функцию вторым аргументом. Третьим и дале еаргументами можно передать аргументы для вызываемой функции.
loop = asyncio.get_event_loop()
delay = 100.0
async def my_func():
# твоя логика с отправкой сообщений тут
when_to_call = loop.time() + delay # delay -- промежуток времени в секундах.
loop.call_at(when_to_call, my_callback)
def my_callback():
asyncio.ensure_future(my_func())
Таким образом ты зациклишь вызов своей функции по интервалу.
Не забудь так же что твой событийный цикл в этом случае должен работать бесконечно:
https://docs.python.org/3/library/asyncio-eventloo...