coro任务超时取消

uasyncio.wait_for

等待一个协程,如果在给定的超时时间内未完成,则引发一个异常。。

  1. uasyncio.wait_for(coro, timeout)
  • 参数描述:
名称 说明
coro 协程对象
timeout 超时时间, 单位是秒, int/float类型
  • 示例:
  1. from usr import uasyncio as asyncio
  2. async def bar(x):
  3. count = 0
  4. while True:
  5. count += 1
  6. print('Instance: {} count: {}'.format(x, count))
  7. await asyncio.sleep(2) # Pause 1s
  8. print("sleep count instance = {} count = {}".format(x, count))
  9. async def main():
  10. """设置协程wait task"""
  11. task = asyncio.wait_for(bar(10), 7)
  12. """启动协程, 上面协程表示在7秒内如果执行的task没退出,则关闭协程, 跑出error"""
  13. asyncio.run(task)
  14. await asyncio.sleep(10)
  15. asyncio.run(main())

uasyncio.wait_for_ms

  • 这个函数的功能和 wait_for 类似,但是超时时间的单位是毫秒。
  1. uasyncio.wait_for_ms(coro, timeout)
  • 参数描述:
名称 说明
coro 协程对象
timeout 超时时间, 单位是毫秒, int/float类型