¿Llamar a una función asincrónica periódicamente?
Tengo la siguiente función para llamar a s(c) cada 24 horas.
def schedule_next_sync():
t = datetime.datetime.now()
t = t.replace(hour=0) + datetime.timedelta(hours=24)
def wrapper():
s(c)
schedule_next_sync()
tornado.ioloop.IOLoop.current().add_timeout(datetime.datetime.timestamp(t), wrapper)
Sin embargo, s() será cambiado por una función asíncrona.
async def s(c):
¿Cómo actualizar schedule_next_sync para la función asíncrona? ¿Debería ejecutar s() de manera sincrónica? ¿O cambiar schedule_next_sync() a una función asíncrona?
davy.ai
Deberías cambiar
schedule_next_sync()
a una función asíncrona. Puedes utilizarasyncio.ensure_future()
para ejecutars()
de forma asíncrona. Por ejemplo: