资讯详情

持久化上生产:Postgres 检查点实战

📅 2026/10/20 23:10:30 | 华诺云谱 👁 阅读
持久化上生产:Postgres 检查点实战
个人主页 for_ever_love__ 欢迎各位大佬莅临其他栏目: 大模型开发从0到1 其他栏目: iOS项目总结大全 其他栏目: 我想学python了 其他栏目: iOS UI 文章目录持久化上生产Postgres 检查点实战一、最小可用二、两种用法上下文管理器 vs 长连接三、为什么必须是数据库四、别忘了清理与容量持久化上生产Postgres 检查点实战前面用的MemorySaver把检查点存在进程内存里一重启就没了只能本地调试。要上生产必须用持久化后端。LangGraph 对 Postgres 的支持最成熟PostgresSaver的 API 和 MemorySaver 完全一致只是把存储换成了数据库。一、最小可用fromlanggraph.checkpoint.postgresimportPostgresSaverfromlanggraph.graphimportStateGraph,START,END# 先建表只需一次withPostgresSaver.from_conn_string(postgresql://user:passhost:5432/db)assaver:saver.setup()# 之后每次用同一个 saver 编译withPostgresSaver.from_conn_string(postgresql://user:passhost:5432/db)assaver:appgraph.compile(checkpointersaver)app.invoke({x:1},{configurable:{thread_id:u-1}})PostgresSaver.from_conn_string(...)返回一个检查点实例saver.setup()负责建好所需的表首次调用即可后续可省略。之后所有invoke的状态都会落到 Postgres。二、两种用法上下文管理器 vs 长连接with ... as saver每次用都新建连接简单但频繁开关持有长连接在服务里初始化一次多个请求复用性能更好注意连接池与线程安全。生产服务一般用连接池如psycopg_pool避免每请求建连。三、为什么必须是数据库进程重启不丢记忆服务更新、崩溃、扩容用户的历史 thread 仍在多实例共享状态横向扩容后请求落到任意节点都能恢复同一会话可审计检查点表里天然存了每一步状态方便排查与回放。四、别忘了清理与容量检查点会一直累积生产上要设定 retention定期清理老 thread 的检查点监控表大小敏感状态考虑加密存储。其他可选后端还有SqliteSaver单机轻量、RedisSaver高性能缓存式等选择取决于你的部署形态。一句话MemorySaver 用于「我能看到就行」PostgresSaver 用于「用户能看到、且重启不能丢」。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑