Azure队列触发函数复用MongoClient遇连接超限及会话问题咨询
关于Azure函数复用MongoClient的连接问题
我编写了一个基于Node.js的队列触发Azure函数应用,每次队列触发时会向MongoDB插入数据。我在函数级别之外创建MongoClient,并为所有触发器复用同一个MongoClient,代码如下:
if(mongoClient.topology.isConnected()) //使用已有连接 else //创建新客户端 mongoClient = await mongoDB.MongoClient.connect();
遇到的问题:
- 有时MongoDB集群会报错:连接数已超过集群上限
- 不确定该问题是否由连接保持时间过长导致?MongoDB连接是否会在一段时间后自动过期?
- 在函数级别之外保持客户端连接并复用的做法是否合理?希望得到相关优化建议
另外,如果改为在函数级别内开启和关闭连接,函数会出现另一个错误:无法使用已结束的会话
内容的提问来源于stack exchange,提问作者Manjunath G
相关产品推荐
相关产品推荐

