首页 > 解决方案 > MongoDB 中的会话如何工作?

问题描述

如果连接空闲超过 30 分钟,我们将面临 mongo 超时问题。为了解决问题,我尝试在 python 中添加会话,并希望每 25 分钟启动一次重启会话的多处理。

client = pymongo.MongoClient(configuration)
proc = multiprocessing.Process(target=refresh_session)
proc.start()

假设客户端是全局变量

def refresh_session():
   session_id = client.admin.command("startSession")["id"]["id"]
   while session_id:
       time.sleep(25*60)
       client.admin.command({"refreshSessions":[{"id":Binary(session_id.bytes,UUID_SUBTYPE)}]})

这是无限循环,我仅在关闭 mongo 连接时才终止它。

我对会话了解甚少,我正在初始化的客户端上执行大量操作。但是,我如何确保我提供的会话将刷新我正在工作的客户端。如果这不是更好的解决方案,我必须做些什么来确保即使连接保持空闲我也不会遇到任何连接丢失问题

标签: pythonmongodbpymongo

解决方案


推荐阅读