假设一个应用程序每 10 分钟收集一次全球各个城市的实时温度数据。
使用以下 GAE 数据存储模型,
class City(db.Model):
name = db.StringProperty()
class DailyTempData(db.Model):
date = db.DateProperty()
temp_readings = db.ListProperty(float, indexed=False) # appended every 10 minutes
和一个 cron.yaml 一样,
cron:
- description: read temperature
url: /cron/read_temps
schedule: every 10 minutes
我已经达到了 GAE 的数据存储写入每日免费配额,我正在寻找解决这个问题的方法。
我正在考虑通过仅在每天结束时持久保存温度数据来减少我的数据存储写入,这将有效地将每日写入量(每个城市)从 144 次减少到 1 次。
一种方法是使用 memcache 作为临时暂存器,但由于随机数据驱逐的可能性,我很可能会丢失当天的所有数据。(除了问题:根据经验,计划外驱逐真正发生的频率是多少?)
问题如下:
- 是否有这样的内存/存储设施(在 cron 作业中持久且有保证)可以让我减少所描述的数据存储写入?
- 如果没有,有什么替代解决方案?
唯一的其他要求是温度读数必须在一天中的任何给定时间都可以访问(以提供给客户端)。