我的任务是每分钟通知一次有关拍卖的信息,有这样的代码,但我不确定这是否是正常的实现,我能以某种方式得到函数中还剩下多少延迟,还是以某种方式更多这样做有利可图吗?当前实施:
import asyncio
async def draw_info(auction):
print("до окончания 5 минут")
await asyncio.sleep(60)
print("до окончания 4 минуы")
await asyncio.sleep(60)
print("до окончания 3 минуы")
await asyncio.sleep(60)
print("до окончания 2 минуы")
await asyncio.sleep(60)
print("до окончания 1 минута")
await asyncio.sleep(60)
asyncio.ensure_future(draw_info())
https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_at - 任务调度器
与睡眠不同,错误不会累积,并且仅取决于其余代码中异步函数的执行时间。
如果其余代码没有阻塞,并且繁重的数学运算放在执行器中,则可以忽略时间误差(不到几分之一秒)