【发布时间】:2014-08-06 08:32:17
【问题描述】:
我正在命名空间A 中创建一个com.google.appengine.api.datastore.Key,并将其作为字段添加到DeferredTask 以在不同的命名空间B 中运行。然后将该任务发送到队列并在不同的盒子上执行。
因为它是在命名空间 A 中创建的,该键以 A 作为其原始命名空间值(在其 appIdNamespace 字段中)。
但是由于密钥的 appIdNamespace 字段是瞬态的并且 DeferredTask 使用序列化,我希望 appIdNamespace 字段在反序列化时为空(因此被初始化为具有 B 的命名空间值)运行时命名空间B。
但是,当任务在命名空间B 中运行时,反序列化后,key 在其appIdNamespace 字段中仍然具有A 作为命名空间的值。
我确定我在这里遗漏了一些东西,但无法解释。我在这里错过了什么?
【问题讨论】:
-
Key的序列化过程可能会被覆盖,它也会对appIdNamespace进行序列化。
标签: java google-app-engine objectify google-cloud-datastore