我是加入这个很棒的社区的新初级开发人员。我正在开发我的第一个大型个人项目,并且我被这个特定的部分所困扰。
我想构建一个像 Facebook 这样的提要通知系统,具有以下功能:
- 跟踪不同的模型和关系,例如:获得的新徽章、订阅模型中的新评论、关注用户的新帖子、我的帖子的新评论、我的帖子的新喜欢......
- 例如,对活动进行分组,而不是在我的帖子中为每个喜欢有 400 个活动,只有一个通知说“用户 X 和 399 更多喜欢你的帖子”
- 可以将通知标记为已读以不再看到它们,至少您浏览了过去的通知。
- 可扩展性、良好的性能以及将来可能集成到使用 Iconic 框架开发的APP中。
推送通知是可选的,如果用户需要刷新页面才能看到新的通知也可以。
所以为此,我读了很多。我看过一些 Railcast 视频,遵循教程,但我仍然不确定如何开始。
我考虑了以下方法:
- 使用public_activity gem,向迁移添加一个新的“已读”字段。并思考如何管理分组活动。但是我看到很多关于性能的抱怨。我预计第一个月在我的网站上会有大约 50000 名用户(我已经有用户了),在线用户达到 500-1000 人的高峰。所以也许这不是最好的方式……因为我会有很多活动、很多“通知”和很多用户。
- 使用像https://getstream.io/这样的系统,因为它们还具有可用于 RoR 和 Ruby 的集成。这里主要关心的是定价,因为如果我没记错的话,检查一下,如果我没记错的话,有这么多用户,每个用户每天大约 10 条通知,我每月支付的费用可能超过 200 美元,并且始终保持增长用户增长。
- 构建我自己的系统,也许使用 Redis。但也许这太复杂了,需要大量时间来编写一个好的、高效的、有效的代码。
所以,考虑到这些选项,我不知道哪个最适合我,或者是否是另一种可能性。
如果有人在这些问题之前问过,请让我知道您的想法以及您认为正确的方法。
谢谢 !!:)