如何知道Google AppEngine HRD数据存储区的更新何时完成?

use*_*263 5 java google-app-engine google-cloud-datastore

我有一个长期运行的工作,更新1000个实体组.我想在之后启动第二份工作,必须假设所有这些项目都已更新.由于有太多的实体组,我不能在一个事务中执行它,所以我只安排第二个作业在第一个完成使用任务队列后运行15分钟.

有没有更好的办法?

是否可以安全地假设15分钟承诺数据存储与我以前的呼叫同步?

我正在使用高复制.

在关于HRD的Google IO视频中,他们列出了处理最终一致性的方法.其中一个就是"接受它".一些更新(如twitter帖子)不需要与下一次阅读保持一致.但是他们也说了一句"嘿,我们只是说它们在一致之前的几秒钟之内".这个时间框架是否记录在其他地方?是否安全,假设在写入之后等待1分钟再次阅读将意味着所有我的早期写入都在读取?

提及的是在此视频中的39:30标记http://www.youtube.com/watch?feature=player_embedded&v=xO015C3R6dw

use*_*263 0

我确实找到了这样的说法:

通过最终一致性,超过 99.9% 的写入可在几秒钟内用于查询。

在此页面底部: http://code.google.com/appengine/docs/java/datastore/hr/overview.html

因此,对于我的应用程序来说,下次读取时它不存在的可能性为 0.1% 可能是可以的。但是,我确实计划重新设计我的架构以利用祖先查询。