我在GAE上构建了一个应用程序,当另一个用户执行影响它们的操作时需要通知用户。当你的朋友评论你的Facebook状态时,一个真实的世界比喻会被警告。向用户处理通知
我明白Channel API的工作原理是如何实时发送通知,但我试图理解将这些通知存储在数据存储区中的最有效方法。理想情况下,我希望通知代码与正在执行的实际事件分离。这是一个很好的用例Prospective Search?它并不完全正确,因为我不需要执行任何类型的搜索,只是:如果您看到新评论,则创建一个存储在数据存储中并通过通道api推送到客户端的新通知连接。我基本上需要数据库触发器,但我不认为GAE支持这一点。
为什么感觉前瞻性搜索感觉不对?其他事件必须符合什么标准才能触发通知?您是否可以使用标准查询轻松查询需要通知的所有用户?如果是这样,那么在任务中执行该查询。但是比较两种方法的效率是值得的。预期的搜索查询区域比标准查询更灵活,所以权衡是创建文档模式,而不是额外的工作来制作标准数据库查询 - – 2013-03-24 00:20:57
预期的搜索对于在其他地方创建数据流数据似乎很有用。因此,如果用户执行了搜索,那么我们希望“保持搜索正在运行”,并在用户查看原始结果时发送新匹配给用户。我试图做的更像是几乎所有交易的副作用。 Prospective提供了很多我不需要的灵活性。另外,如果我不需要迁移,我不喜欢与GAE特定的功能绑定。 – wlindner 2013-03-24 16:37:59