在appengine中存储单个时间戳的最简单方法

时间:2014-04-10 23:36:35

标签: python google-app-engine

我在Google的AppEngine上运行Python脚本。 python脚本非常基本。每次脚本运行时,我都需要它来更新时间戳 SOMEWHERE ,这样我就可以记录并跟踪脚本上次运行的时间。这将允许我根据脚本上次运行的时间等来执行逻辑。在脚本结束时,我将时间戳更新为当前时间。

使用谷歌的NBD似乎有点矫枉过正,但它似乎也是在AppEngine中存储任何数据的唯一方法。有没有更好/更简单的方法来做我想要的?

2 个答案:

答案 0 :(得分:4)

它真的非常简单,而且不会过度杀戮......任何其他东西都会在appengine中过度使用 - 尝试使用低级API,GCS或将其存储在其他服务中都需要更多的工作并引入复杂性和潜力的水平不可靠,会慢一些。此外,任何不存储/检索日期时间对象作为日期时间对象(即文本文件)的机制意味着您需要将字符串解析为日期,从而创建更多工作。

定义

class TimeStamp(ndb.Model):
    timestamp = ndb.DatetimeProperty(auto_now=True)

创建它。

TimeStamp(key_name="TIMESTAMP").put()

无需阅读即可更新。

TimeStamp(key_name="TIMESTAMP").put()

阅读,然后更新。

ts = TimeStamp.get_by_id("TIMESTAMP")
ts.put()

答案 1 :(得分:0)

我发现解决这个问题的另一种方法是使用memcache。这非常容易。虽然应该注意到memcache可以随时清除,因此NDB可能是更好的解决方案。

设置时间戳:

  

memcache.set(" timestamp",current_timestamp)

然后,阅读时间戳:

  

memcache.get("时间戳&#34)