无法关闭连接 python gremlin 客户端

问题描述

我一直在使用 https://github.com/Azure-Samples/azure-cosmos-db-graph-python-getting-started 项目来处理 cosmosdb-gremlin。

当我在 Windows 上将它作为 python 函数运行时,项目工作正常。

现在我正在尝试将此代码转换为 azure 函数

我能够转换和运行,但面临几个问题(tornado+python3.8 兼容性问题)(nest_asyncio)。现在我已经解决了这些错误,但我仍然在关注(附上截图)

当我尝试关闭连接时出现此错误

client.close().

所以为了避免完全的流程失败,我只是将它包裹在 try/catch 中。所以现在流量在继续,在功能上我没有看到任何副作用。

但后来我注意到一些事情,线程数随着每次运行而增加。我不确定这是不是因为我没有关闭错误。恐怕我在积累孤儿线程。

请建议可以做什么?

我正在尝试修改 gremlin-python 包中的代码,因为这样它可能会在本地工作,但是在 azure 上部署它时我会遇到其他问题。

我使用的是 python 3.8.5

enter image description here

解决方法

我能够通过实施 2 个步骤来解决它。

  1. 通过添加 async 更改了 axuze 函数。

    async def main(req: func.HttpRequest) -> func.HttpResponse:

  2. 在文件顶部添加了这两行...

    导入 nest_asyncio

    nest_asyncio.apply()

  3. 通过在requirements.txt中添加以下条目来降级龙卷风

龙卷风==4.5.3

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...