仅获取新实体

Fetch new entities only

我以为 Datastore 的 key 是按插入日期排序的,但显然我错了。我需要定期在数据存储中查找新实体,获取并处理它们。

到现在为止,我会简单地存储最后获取的 key 并错误地查询任何大于它的东西。

有办法吗?

提前致谢。

数据存储自动生成的键是均匀分布生成的,以提高搜索性能。您将无法了解最后使用键添加的实体。

相反,您可以尝试几种不同的方法。

  1. 使用 Pub/Sub 构建您的应用程序,以便另一个后台任务使用最后添加的实体。在添加到数据库中的实体上,您只需将新事件发布到 Pub/Sub 中并使用密钥 ID。您的事件侦听器(单独的例程)将收到它。

  2. 使用名称并生成自定义名称。但是,当您想要创建顺序增长的名称时,即使数据范围不大,这也会影响性能。您可以在 Google 数据存储的最佳实践中找到更多相关信息。 https://cloud.google.com/datastore/docs/best-practices#keys

  3. 您可以添加额外的创建时间列,并且仍然使用自动密钥生成。