相关疑难解决方法(0)

何时使用以及何时不使用Python 3.5`await`?

我正在使用asyncioPython 3.5中的使用流程,但我还没有看到我应该做什么await以及我不应该做的事情或者可以忽略不计的事情的描述.我是否必须在"这是一个IO操作,因此应该await编辑" 方面使用我的最佳判断?

python python-asyncio python-3.5

19
推荐指数
1
解决办法
7242
查看次数

如何监视Python事件循环的繁忙程度?

我有一个异步应用程序,它通过aiohttp提供请求并执行其他异步任务(与数据库交互,处理消息,将请求本身作为HTTP客户端).我想监视事件循环的繁忙程度,也就是说它花费了多少时间来执行代码而不是等待select完成.

有没有办法用标准库事件循环或其他第三方循环(uvloop)来衡量这个?

具体来说,我想要一个持续的百分比衡量饱和度,而不仅仅是这个问题似乎要解决的二元"忙碌" .

python python-asyncio

7
推荐指数
1
解决办法
204
查看次数

更简单的方法来运行生成器功能而无需关心项目

我有一些用例,我需要在不关心产生的项目的情况下运行生成器函数.
我不能使它们成为非齐型函数,因为在其他用例中我当然需要屈服值.

我目前正在使用一个简单的自制功能来耗尽发电机.

def exhaust(generator):
     for _ in generator:
         pass
Run Code Online (Sandbox Code Playgroud)

我想知道,是否有更简单的方法可以做到这一点,我错过了?

编辑 用例:

def create_tables(fail_silently=True):
    """Create the respective tables."""

    for model in MODELS:
        try:
            model.create_table(fail_silently=fail_silently)
        except Exception:
            yield (False, model)
        else:
            yield (True, model)
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我关心错误和成功价值......

for success, table in create_tables():
    if success:
        print('Creation of table {} succeeded.'.format(table))
    else:
        print('Creation of table {} failed.'.format(table), file=stderr)
Run Code Online (Sandbox Code Playgroud)

...而在某些我只是想"盲目地"运行这个功能:

exhaust(create_tables())
Run Code Online (Sandbox Code Playgroud)

python generator python-3.x

5
推荐指数
3
解决办法
1351
查看次数