我在GAE上構建了一個應用程序,當另一個用戶執行影響它們的操作時需要通知用戶。當你的朋友評論你的Facebook狀態時,一個真實的世界比喻會被警告。向用戶處理通知
我明白Channel API的工作原理是如何實時發送通知,但我試圖理解將這些通知存儲在數據存儲區中的最有效方法。理想情況下,我希望通知代碼與正在執行的實際事件分離。這是一個很好的用例Prospective Search?它並不完全正確,因爲我不需要執行任何類型的搜索,只是:如果您看到新評論,則創建一個存儲在數據存儲中並通過通道api推送到客戶端的新通知連接。我基本上需要數據庫觸發器,但我不認爲GAE支持這一點。
爲什麼感覺前瞻性搜索感覺不對?其他事件必須符合什麼標準才能觸發通知?您是否可以使用標準查詢輕鬆查詢需要通知的所有用戶?如果是這樣,那麼在任務中執行該查詢。但是比較兩種方法的效率是值得的。預期的搜索查詢區域比標準查詢更靈活,所以權衡是創建文檔模式,而不是額外的工作來製作標準數據庫查詢 - – 2013-03-24 00:20:57
預期的搜索對於在其他地方創建數據流數據似乎很有用。因此,如果用戶執行了搜索,那麼我們希望「保持搜索正在運行」,並在用戶查看原始結果時發送新匹配給用戶。我試圖做的更像是幾乎所有交易的副作用。 Prospective提供了很多我不需要的靈活性。另外,如果我不需要遷移,我不喜歡與GAE特定的功能綁定。 – wlindner 2013-03-24 16:37:59