跳到内容

blocking-sleep-in-async-function (ASYNC251)

派生自 flake8-async linter。

作用

检查异步函数是否调用 time.sleep

为什么这不好?

通过 time.sleep 调用阻塞异步函数会阻塞整个事件循环,阻止它在等待 time.sleep 时执行其他任务,从而抵消了异步编程的优势。

使用 asyncio.sleep 代替 time.sleep

示例

import time


async def fetch():
    time.sleep(1)

建议改为

import asyncio


async def fetch():
    await asyncio.sleep(1)