Python asyncio事件循环卡在多处理工作进程中

时间:2019-05-31 06:07:23

标签: python asynchronous multiprocessing

在Windows上运行Python 3.7.2,

我遇到的情况是asyncio事件循环永远不会脱离多处理产生的进程。我被禁止透露所有细节。但这是这样的:

  1. 我使用multiprocessing通过第三方加快查询速度 API。
  2. 此API支持服务器-客户端体系结构,并使用asyncio 内部事件循环。
  3. 在不使用多处理的情况下,无论成功还是失败,API始终会返回。
  4. 在我的多处理工作进程中,如果查询失败,则调用将永远不会返回,也不会自然地中断工作进程,即使是通用异常处理程序也不会捕获任何东西,并且会卡住。

辅助函数的伪代码片段如下所示:

def my_worker(*mpargs):
    with thirdparty.api as myclient:
        try:
            myclient.query(*args)
        except Exception:
            traceback.print_exc()

我该如何解决?

1 个答案:

答案 0 :(得分:0)

详细说明问题之后,我终于在这篇文章中找到了解决方案: Why am I getting NotImplementedError with async and await on Windows?

thirdparty.api需要注意这一细节,并且在解决之后,我的问题就解决了。