我建议保持简单...
创建一个数据库表来存储您的事件,在适当的时候插入到该表中,然后只需实现一个简单的 ajax 轮询技术,在客户端每x秒访问一次服务器。
我对考虑使用推送通知方法或使用 noSql 数据存储的其他解决方案感到担忧。它比使用 Django 框架中内置的工具的传统拉式通知系统复杂得多,而且除了极少数的例外情况外,都是多余的。除非你特别要求严格的实时解决方案,保持简单,使用框架中已经存在的工具,而对于基于数据库或网络性能有异议的人,我只能说,过早的优化是问题的根源。一切邪恶。
构建一个包含特定于您的应用程序的最近活动数据的模型,然后,每当您的应用程序执行一些应该记录新活动的操作时,您都可以将其插入此表中。
您的视图将与任何其他视图一样,从该表中提取前x行RecentActivity
(可选地基于查询参数等)。
然后,在客户端,您只需有一个简单的 ajax 轮询器每x秒访问您的视图。不乏您可以使用的复杂插件和技术,但编写自己的插件和技术也没有那么复杂:
function simplePoll() {
$.get("your-url", {query-parameters}, function(data){
//do stuff with the data, replacing a div or updating json or whatever
setTimeout(simplePoll, delay);
});
}
我的观点是,在您的网站成功到足以成为问题之前,性能问题并不是真正的问题。传统的关系数据库可以很好地扩展,直到您开始达到 Twitter、Google 等成功的水平。我们大多数人都没有达到那个水平 :)