Google App Engine - 如何在社交网络中实施活动流

时间:2010-04-23 07:30:18

标签: google-app-engine

我想了解在应用引擎(PYTHON)中构建社交网络的活动流的最佳实践的一些想法

我首先想要记录每个用户的所有活动 - 以便我们有一个历史记录。即有人成为朋友,添加了图片,更改了他们的地址等。这样我们就可以在需要时提供用户历史记录。也意味着我们可以删除友谊联接,更改用户数据但有历史记录。

我还想将用户活动流式传输给他们的朋友。为此,只需要保留最后的X个活动 - 即在活动发生时将消息发送给朋友的情况。

它非常直接地设计历史记录 - 即:何时,何地,何地。复杂性是关于我们如何通知用户的朋友他们的活动。

在我们的应用程序中,友谊不是相互的 - 也就是说它们基于Twitter的模型。有些帐户可能有数千名粉丝。

对此进行建模的最佳方法是什么。

  1. 使用多对多联接表并执行代价高昂的查询 -
  2. 使用向所有订阅者发送活动副本的Feed类 - 可能是mcache?由于他们可能需要发送成千上万的消息,我想象一下需要使用cron作业。
  3. 对此有任何帮助想法的想法

    THX

2 个答案:

答案 0 :(得分:4)

Brett Slatkin在去年的Google I / O上发布了一篇名为Building Scalable, Complex Apps on App Engine的精彩演讲,其中的示例是一个类似Twitter的应用程序,用户的更新被推送给他们的粉丝。基本上就是你想要做的事情。

我强烈推荐任何人编写App Engine应用的视频,这真的很有帮助。

答案 1 :(得分:0)

  1. 不要加入。它们太贵了,你很快就会烧掉你的配额。
  2. 您可以使用task queue,它有点像cron作业(即内容发生在原始请求之外),但您可以随意启动它们。如果你在刷新缓存时失去一些活动,那么memcache会很好......