I need a way ,so i keep value of variable store in a database of Google appengine for 24 hrs and then it is destroy automatically . Is there any way,and some other way please.i need code explanation in java. thanks
3 回答
您可以将数据存储在 Google App Engine Datastore 中的实体中,并拥有一个每 24 小时将其删除的 cron 脚本。
有关数据存储的更多信息,请查看Storing data in Java,而有关 App Engine 上的 cron 作业的详细信息,请查看Scheduled Tasks With Cron for Java。
添加实体,然后立即创建一个任务队列任务,该任务将以 24 小时的 eta 执行并使用其 ID(作为 TQ 参数传递)删除该实体。这将确保至少 24 小时才能删除。但是,如果任务队列调度程序没有立即获取 eta 调度的任务,您的删除可能会在 24 小时后发生。(这可以通过使用专门的、非常高速率的 TQ 来缓解这个问题。)非常简单的方法被“模糊 24 小时以上直到删除”问题降级——尽管 cron 作业方法也会有一些模糊性,具体取决于关于 cron 运行的频率。-史蒂夫
回复:代码示例尝试文档... https://developers.google.com/appengine/docs/java/taskqueue/
您还可以在 Memcache 中存储 24 小时超时的实体。这将是一个非常及时准确的删除,由内存缓存本身自动完成。如果您存储的值对用例至关重要,则不推荐使用。检查内存缓存的 SLA!
如果数据很关键,但 24 小时延迟的精度不是,我会正常将实体保存到数据存储区,但在实体构造中填充时间戳 (java.util.Date) 字段。然后每小时运行一次后端任务以搜索要删除的实体。这将是资源消耗较少的变体,但如果您的实体是 24:00:00.0000-24:59:59:9999 旧的(取决于您的任务运行的时间),它们将被删除。
要精确删除实体,您需要每分钟或每秒运行一次脚本,但是如果在删除的情况下必须更新许多索引,它可能会变得非常繁重。它可能会导致其他问题,并且根据您的数据模型,您可能需要开始使用事务。