任务队列和数据存储区读写

时间:2015-03-29 14:24:03

标签: google-app-engine google-cloud-endpoints google-cloud-datastore

我在我的google云端点模块中使用Objectify,我的端点项目处理我的大多数数据存储区读写操作,但我想知道使用任务队列来包装读取或写入操作是否是一种有效的设计实践在谷歌应用引擎的数据存储区。

2 个答案:

答案 0 :(得分:3)

任务执行所需的所有数据都必须写在某处,App Engine会将此数据保存在由同一数据存储区支持的任务队列中。除非你的写操作涉及数字运算,URL提取,外部API调用,数百个实体的更新或其他一些昂贵的逻辑,否则在任务中包装写调用没有任何好处。

在大多数情况下,无法在任务中包装读取调用,因为您无法在同一个调用中返回此数据。

答案 1 :(得分:0)

如果您想加快写入速度,请考虑使用write-behind-cache。您丢失数据的可能性很小,但是您将大大加快写入速度(用户可以看到)。

这个想法是首先将实体写入memcache,这样用户就不会等待实际的数据存储区写入,然后通过任务队列/ cron获取该memcached实体并将其写入数据存储区。