SQLAlchemy的“缓存”问题导致的BUG
问题描述:
最近做项目,遇到一个问题,两个项目操作同一个数据库,其中A项目用的pymysql链接操作数据库,B项目用的sqlalchemy,当我请求B项目中的一个接口,会通知A项目操作数据库,然后返回结果后,B项目再进行下一个操作(这两步是在一个接口中),但是后来发现,A成功添加了数据后,在同一个请求中,B进行查询数据时,查询不到刚刚更新的数据,后来想了想可能是存在缓存问题,缓存问题可以参考下面这个文章
参考:https://www.jianshu.com/p/c0a8275cce99
解决问题:
在B进行查询数据前先db.session.commit()一下,这个操作会将当前session对象里面的缓存全部提交,清空缓存,下次查询时,就是从数据库中查询最新数据,而不是先查询缓存
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步