2012-12-16 322 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