跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • flask-sqlalchemy 新增数据入库,然后马上查询,会有查询不到数据的情况?
未分類
8 1 月 2020

flask-sqlalchemy 新增数据入库,然后马上查询,会有查询不到数据的情况?

flask-sqlalchemy 新增数据入库,然后马上查询,会有查询不到数据的情况?

資深大佬 : Raul7 65

先贴代码:

try:   # 判断表中数据是否存在,存在更新,不存在新增   if not existing:       db.session.execute(           ServiceAsset.__table__.insert(),           [{'xxx': xxx}]       )   else:       ServiceAsset.query.filter_by(host_id=xxx, port=xxx).update({'xxx':'xxx'})   db.session.commit() except Exception as e:   db.session.rollback()  # ServiceAsset 表数据入库后,马上在 ServiceAsset 表进行一个查询获取 ServiceAsset 表的 id try:   service_asset_query = ServiceAsset.query.filter(and_(xx=xx, xxx=xxx)).all()   if not service_asset_query:       log.write('info', None, 0, u'在 ServiceAsset 中根据 xx 和 xxx 未获取到资产信息')       pass   for saq in service_asset_query:       service_id_cur = saq.service_id except Exception as e:     db.session.rollback() 

大概插入了几百条数据,其中会有几条获取不到 service_asset_query。 flask-sqlalchemy 新增数据入库,然后马上查询,会有查询不到数据的情况?

请问下各位表哥们,有遇到这种情况吗?该如何解决

大佬有話說 (11)

  • 資深大佬 : rogwan

    如果读写并行,或者有主备的时候,可能出现这个情况,假如插入 100 条数据,在写 90 条的时候,来读取就会遗漏部分还在 session 里的数据。

  • 主 資深大佬 : Raul7

    @rogwan 那要怎么解决啊 我这边应该是有主备

  • 資深大佬 : wangyzj

    @Raul7 不是同一个节点?

  • 資深大佬 : lhx2008

    一般就不管了,反正等会会插进去的。。要不你就强制主库查

  • 主 資深大佬 : Raul7

    @lhx2008 我贴的代码后面的过程是要入库另一张表,有几条没查出结果,我另一张表的数据全乱了

  • 資深大佬 : simapple

    session 的问题

  • 主 資深大佬 : Raul7

    @wangyzj 有主从 写和更新操作都是直接主库 读是主从一起

  • 資深大佬 : wukangave

    数据库经典的 read-after-write-consistency 问题。当写入后立即读取时,要保证从主节点读

  • 資深大佬 : wangyzj

    @Raul7 有主从
    这就是不是 sqlalchemy 的问题了
    主从不是绝对实时啊

  • 資深大佬 : exip

    这好像是事务应该解决的问题.

  • 資深大佬 : jwchen

    主从要想想办法自己控制去哪里读,实时性高的当然要价格 is_salve 之类的参数

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具