2012-12-16 237 views
0

实施项目的新闻源,我觉得像在主屏幕Github上/到位桶新闻提要。谷歌应用程序引擎

有看多个项目(几十或几百)多个用户(几十个或数千个)。每个项目都会有最新的更新状态消息。

将合并的结果如下所示:

  • 项目A:问题#3改变从打开到关闭
  • 项目B:@someuser上问题#评论231
  • 项目C:@anotheruser打开问题#1493
  • 项目B:@thirduser评论问题#231

当使用SQL,我会考虑事端像

select * from notifi where projId in (<user's watching list>) 

但GAE G功能被实现为在同一时间,使多个查询。这不会有效。它不会对用户收看30多个项目(根据https://developers.google.com/appengine/docs/python/datastore/gqlreference在同一时间不能做超过30个查询)工作。

我怎么能实现类似的东西吗?

回答

0

保留一个包含更改的项目的列表和更新的模式。订阅用户到这一点,每个人都得到是相同的更新,减去他们发送更新给用户之前做出自己的更新。所以每个项目有一个查询结果会发送给所有订阅的用户。所以你不会在用户的基础上做“选择”,而是做一个项目。

或只是尝试东西然后使用可用的工具进行优化。并使用NDB