python - 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 连接时才终止它。
我对会话了解甚少,我正在初始化的客户端上执行大量操作。但是,我如何确保我提供的会话将刷新我正在工作的客户端。如果这不是更好的解决方案,我必须做些什么来确保即使连接保持空闲我也不会遇到任何连接丢失问题
解决方案
推荐阅读
- nginx - 如何在 ubuntu 中使用 nginx 从目录中提供 laravel 项目
- python - pandas 值正在尝试在 DataFrame 中的切片副本上设置
- javascript - 在没有 React Router 的视图之间滚动
- amazon-web-services - Api Gateway websocket $connect 从 http 集成点获得 400 但它适用于其他路由
- reactjs - 将 Material-ui 网格添加到 React 页面时,Jenkins 构建失败
- html - HTML 元素在打开后移动
- r - 从网络源渲染图像
- javascript - 如何在 _app.js 中使用 getStaticProps 在 Next.js 的每个页面中显示从 api 获取的数据
- c# - 如何修复呈现一致微小差异的 int 到 hex 转换?
- html - CSS渐变动画出现静止