App引擎应用程序设计问题

时间:2009-12-16 16:49:52

标签: python google-app-engine

我想从其他网站加载信息(此部分已完成),但每次加载页面时我都会这样做,而不会这样做。所以我想在“最后检查的bbc网站”这样的设置表中有一个变量,当页面加载时,它会检查自上次检查后它是否足够长以便再次检查。这样做有什么蠢事吗?

另外,我必须使用表来存储1个关闭变量,例如此设置吗?

3 个答案:

答案 0 :(得分:2)

我认为除了在数据存储区中创建实体以跟踪“上次访问时间”之外,还有2个选项对您有用。

一种方法是定期检查外部页面,使用jldupont描述的cron api。

第二种方法是将最后访问的时间存储在memcache中。尽管memcache不是永久性的,但如果您只存储上次刷新时间,则不必如此。如果你在memcache中的条目由于某种原因而消失,那么最糟糕的情况是你会再次获取页面,并用当前日期/时间更新内存缓存。

如果要定期检查外部页面,第一种方法最好。如果您只想在用户点击您的网页时检查外部网页,第二种方式可能会更好,您最近没有自己获取该网页。使用此方法,您不会浪费资源获取外部页面,除非有人实际上在寻找与之相关的数据。

答案 1 :(得分:1)

您也可以使用Scheduled Tasks

此外,您并不一定需要使用数据存储区来配置参数:您可以在脚本/配置文件中使用它。

答案 2 :(得分:0)

如果您想在GAE应用程序上使用一些处理程序(包括一个用于计划任务,接收消息,网页访问等)以存储一些新信息,以便将来某些处理程序可以恢复该信息,那么GAE的存储是唯一很好的通用方式(例如,memcache可以从你的下面过期)。不确定你的意思是“表”(?!),但猜测你实际上是指GAE的存储,答案是肯定的。 (在非常特殊的情况下,您可能希望将数据放在网络上的某个不同位置,例如访客的浏览器,例如通过cookie,或亚马逊存储实例等,但在我看来,这些特定情况不适用于我对你的用例)。