我正在使用asyncio运行一段这样的阻塞代码:
result = await loop.run_in_executor(None, long_running_function)
我的问题是:我可以强制执行超时long_running_function
吗?
基本上我不想long_running_function
持续超过2秒,我不能在其中进行适当的超时处理,因为该功能来自第三方库.
关于取消长时间运行功能的警告:
虽然包裹Future
退回通过loop.run_in_executor
与asyncio.wait_for
通话将允许事件循环停止等待long_running_function
一些之后x
秒钟,它不一定会停止基础long_running_function
.这是其中一个缺点,据concurrent.futures
我所知,没有简单的方法可以取消一个concurrent.futures.Future
.