gpt4 book ai didi

java - ndb 可以与 Java 数据存储访问同时使用吗?

转载 作者:行者123 更新时间:2023-12-01 23:50:12 24 4
gpt4 key购买 nike

我们正在开发一个 AppEngine 应用程序,该应用程序部分用 Java 编写,部分用 Python 编写(不同版本使用不同的语言)。我想知道是否可以在Python端使用ndb数据库来访问与Java代码共享的一些模型。

具体来说,当从 Java 端更新实体时,该实体的 ndb 缓存值是否会自动失效?显然,这是必要的,否则 ndb 将返回之前的值。

此外,如果在ndb中写入提交(返回),那么当通过键检索时,该值是否立即在Java端可用?我读到,一旦缓存失效,ndb 写入就会返回,这不能保证可以通过 Java 端的键检索数据。

最佳答案

正如您所怀疑的,由于 Java 数据存储 API 不知道 NDB 的缓存,因此如果您希望 Python 代码立即看到 Java 进程所做的更改,则必须关闭该缓存。可以仅针对特定请求(例如 key.get(use_memcache=False))或仅针对特定模型(添加 _use_memcache = False 作为类变量)关闭缓存。

Java 查看通过 NDB 所做的更改没有问题。我不知道你在哪里读到的,但 NDB 在数据写入数据存储之前返回是不正确的(除非你使用异步写入并且从不等待响应 - 但即便如此,基础设施也会等待在向用户返回 HTTP 响应之前写入成功)。

写入时的实际事件顺序如下:

  1. 通过写入特殊值来锁定内存缓存条目
  2. 将数据写入数据存储区
  3. 删除内存缓存条目使其失效

(内存缓存条目将在下次读取时更新。)

关于java - ndb 可以与 Java 数据存储访问同时使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com