【问题标题】:Google Datastore - how to check for the expiry of entitie of a kind regarding a date property comparing with the current time and dateGoogle Datastore - 如何检查与当前时间和日期相比的日期属性的实体是否到期
【发布时间】:2014-06-20 15:02:07
【问题描述】:

我正在谷歌应用引擎中构建一个应用程序。我正在存储一种具有多个属性的实体,其中一个是日期和时间属性。

我需要通过与当前日期和时间进行比较来检查该日期和时间属性是否超过或“过期”。

我不喜欢轮询。

我正在考虑编写一个守护程序,它不断扫描所有实体以检查它是否已过期。

关键是,如果实体之一“过期”,我需要发送推送通知。

我对这个概念可能完全错误。请提出更好的方法。

【问题讨论】:

  • 听起来很昂贵.....为什么不只保存“自纪元以来的时间”和 GQL 搜索值大于/小于会使它失效的值的模型,例如SELECT * FROM Contact_Info_Entry where AGE > 12345
  • 不是扫描整个数据库,有没有更好的方法来了解特定实体何时“过期”?
  • 索引“date_expire”或“age”属性(无论您选择使用什么),并为您的查询添加过滤器。数据存储区将仅返回与此查询匹配的实体。效率很高。
  • 好吧,您可以创建一个实体,同时创建一个任务,该任务定时在实体到期时执行,然后使实体“到期”。
  • 传入查询与“扫描整个数据库”不同。嗯,是的,但它不会像加载然后依次查看每条记录那样花费你

标签: python google-app-engine google-cloud-datastore nosql


【解决方案1】:

您可以考虑两种方法:

  1. 运行cron job,它将定期查询数据存储区中的过期实体并发送通知。

  2. 添加实体时,创建a task 以在其过期时通知用户。您可以在任务上设置 ETA。仅当您的实体在 30 天内到期时,此选项才可用。

【讨论】:

  • 但是考虑到最坏的情况,它是否适合每天 100 万个条目
  • 它只受您的想象力(和您的预算)的限制。模块/后端和任务很容易扩展。
猜你喜欢
  • 2017-01-15
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2018-03-24
相关资源
最近更新 更多