代码之家  ›  专栏  ›  技术社区  ›  minou

GAE控制台更新不适用于已部署的应用程序(不是最终一致性)

  •  2
  • minou  · 技术社区  · 6 年前

    我的应用程序是GAE标准的。

    https://console.cloud.google.com/datastore/entities/query
    

    我将保存实体并刷新页面,新数据将显示出来。

    在我的网站上,我接着转到一个页面,该页面使用如下实体ID检索实体

    e = Entity.get_by_id(1234)
    

    但我的网站显示的是旧数据!看来这不可能。

    当通过实体id获取实体时,云控制台中的实体更新怎么可能不会在生产中出现?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Patrick Jones    6 年前

    这听起来像是一个缓存问题-正如 this page 注意,通过数据存储控制台更新实体不会更新或刷新缓存。在进行更新之后,应该尝试通过控制台刷新memcache,这将确保查询直接命中数据存储。

        2
  •  3
  •   GAEfan    6 年前

    尝试以下操作:

    e = Entity.get_by_id(1234, use_cache=False, use_memcache=False)
    

    the_key = ndb.Key(Entity, 12345)
    the_key.get(use_cache=False, use_memcache=False)
    

    memcache_timeout read_policy :

    https://cloud.google.com/appengine/docs/standard/python/ndb/functions#context_options