我正在使用asyncio运行一段阻塞代码,如下所示:

result = await loop.run_in_executor(None, long_running_function)

我的问题是:我可以对long_running_function的执行强加超时吗?

基本上,我不希望long_running_function持续超过2秒,并且我无法在其中进行适当的超时处理,因为该函数来自第三方库。

最佳答案

您可以使用asyncio.wait_for:

future = loop.run_in_executor(None, long_running_function)
result = await asyncio.wait_for(future, timeout, loop=loop)

关于python - 使用run_in_executor和asyncio时的超时处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34452590/

10-12 23:12