首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google App Engine Go评分统计和保存

Google App Engine Go评分统计和保存
EN

Stack Overflow用户
提问于 2011-10-18 17:24:14
回答 1查看 138关注 0票数 0

我想在Go中做一个简单的GAE应用程序,让用户以两种方式投票和存储他们的答案。第一种方式是原始数据( "voted for X“的数据库存储),第二种方式是对这些选票进行连续计数("12票支持X,10票支持Y")。在多人同时访问应用程序的情况下,存储这两个值的有效方法是什么?如果我从数据存储中检索数据,更改它,然后为一个实例保存它,另一个实例可能希望并行执行相同的操作,并且我不确定最终结果是否正确。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-18 18:41:23

这似乎是一个很好的方法,简单地将所有投票事件存储为单独的实体( "voted for X“方式),并使用Task Queue进行重新计算( "12票支持X,10票支持Y”),因此重新计算是离线顺序完成的(没有任何竞争和其他并发问题)。然后,您必须每隔一段时间将recalc任务放到队列中,以便更新结果。

Task Queue不允许添加与现有任务同名的另一个任务,但不允许检查特定任务是否已入队,因此,可能只需尝试将同名任务添加到队列中,就足以确保不存在多个重计算任务。

另一种方法是使用goroutine等待来自输入通道的戳,以便重新计算结果。我还没有在App Engine上运行过这样的goroutines,所以我不确定这种方法的一般行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7805064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档