You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PyMongo 4.10异步客户端连接失败时未抛出异常的问题咨询

PyMongo 4.10异步客户端连接失败时未抛出异常的问题咨询

我发现PyMongo 4.10的异步客户端在连接出现问题时,并不会抛出异常,这和我的预期不太一样。

我按照官方文档里的连接示例做了测试——当本地没有运行MongoDB服务时,执行以下代码:

>>> import asyncio
>>> from pymongo import AsyncMongoClient
>>> client = AsyncMongoClient('mongodb://localhost:27017/')
>>> asyncio.run(client.aconnect())
# 没有任何错误抛出

之后我开启了DEBUG级别的日志,能看到连接被拒绝的信息,但依旧没有收到预期中的异常:

>>> import logging
>>> logging.basicConfig(level='DEBUG')
>>> asyncio.run(client.aconnect())
DEBUG:asyncio:Using selector: KqueueSelector
DEBUG:pymongo.topology:{"topologyId": {"$oid": "676020be62e71d3fe6f27721"}, "serverHost": "localhost", "serverPort": 27017, "awaited": false, "durationMS": 2.786167000522255, "failure": "\"AutoReconnect('localhost:27017: [Errno 61] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms)')\"", "message": "Server heartbeat failed"}

我本来以为这个DEBUG日志里的错误应该会以异常的形式抛出,是不是我对PyMongo异步客户端的工作机制有什么误解?

备注:内容来源于stack exchange,提问作者Plup

火山引擎 最新活动