如何计算复杂民意调查的票数

时间:2015-02-10 06:12:09

标签: python google-app-engine

我正在使用Google应用引擎开展项目,我需要让用户对投票进行投票,他们只有15秒的时间来提交投票。我已经使用Pusher.com提供了选项,但我很难想出正确的投票方式。

每30-60秒生成一组选项。在计数投票并且向用户传递新集合之后,旧投票是无用的并且不需要存储。选项的数量每次都不同,通常在5左右,但在极少数情况下最多可达20个。这里有一个棘手的部分,还有两组子选项,每个主选项都有不同的选项。然而,这些是次要的,只有特定选项获胜才有意义。也不是每个主要选项都有它们。所以样本集可以是这样的:

Option A    
 sub options:
 - X
 - Y
 - Z
 sub options 2
 - F
 - G
 - H

Option B
 sub options 2
 - X
 - Z

Option C

Option D
 sub options
 - sub X
 - sub Y
 - sub Z

起初我考虑使用一个简单的数据库表,但Google应用引擎具有并发用户限制,因为我不会浪费大量资源(例如存储限制),因此我需要花费很多资金才能进入较高层级。需要保存结果。我需要这个可以扩展到几千个并发用户。

从我在Googledocumentation分片计数器中读到的内容来看,它们似乎只能是整数,所以我无法存储数组或字符串,这是理想的。 (单一投票数据的一个示例是{'选项':' 2',' sub':' 0',' ; sub2':' 1'})我一直在玩here,而我唯一想到的就是为每一种可能创建一个int计数器投票组合,但这似乎效率低下,往往可能有超过一百个柜台。知道怎么设置它吗?此外,似乎没有任何关于如何在应用程序运行后删除计数器的文档。 我还应该补充一点,我是一名初学自学成才的程序员,这是我第一次走出PHP,javascript和非常简单的python的舒适区。

非常感谢您花时间阅读本文。

1 个答案:

答案 0 :(得分:0)

这可能是一个天真的解决方案,但您可以在使用基本或手动扩展实例时将投票存储在内存中,并且每隔几秒将它们推送到数据存储区,从而不会遇到允许的最大并发更新。