【问题标题】:How to get stale data from the cache with Objectify?如何使用 Objectify 从缓存中获取陈旧数据?
【发布时间】:2016-04-11 12:47:32
【问题描述】:

我一直在尝试调查在启用缓存的情况下使用 Objectify 时获得 DeadlineExceededException 可能会导致哪些行为。

到目前为止,我的实验是这样的:1) 存储一个或多个实体,2) 然后在剩余的大部分执行时间内休眠,3) 在无限循环中进行一些更新,直到请求被中止。 4) 在单独的请求中检查缓存是否与成功写入数据存储同步。

“一些更新”意味着更改对象中的大量 (50) 个字符串,然后将其写回。我还尝试对事务中的多个对象进行更新,以测试再次加载实体时是否会得到一些不一致的结果。到目前为止,经过数千次测试,我还没有从缓存中得到一个不一致的实体。

那么我能否以某种方式使可能缓存的实体的负载与数据存储区中的实体不一致?

【问题讨论】:

    标签: google-app-engine objectify


    【解决方案1】:

    这有很多可能的原因。如果您在单个请求中进行更改,您可能会看到正在运行的会话缓存:

    https://github.com/objectify/objectify/wiki/Caching

    如果您在多个请求中进行查询,您可能会看到最终一致性的结果:

    https://cloud.google.com/datastore/docs/articles/balancing-strong-and-eventual-consistency-with-google-cloud-datastore/

    也许您看到会话缓存污染是因为您没有安装 ObjectifyFilter?如果您不这样做,最新版本的 Objectify 会给您一个讨厌的警告,但也许您正在运行旧版本?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 2016-05-20
      • 2017-02-28
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多