我目前正在研究Rails中的一个应用程序(虽然语言/框架不应该对这个问题很重要,因为它更像是一个理论问题)。我正在努力解决这个问题:
说我在线跟踪数百万个博客,并插入他们的RSS源。我的应用程序每隔几分钟就会查看这些Feed,看看这些数百万博客中是否有任何新的活动。如果有任何新活动,我想提醒我的应用程序用户已注册以接收有特定博客的警报,提醒您。
有一个user_blog_alerts表(用户可以指定要提醒的自定义关键字)是否有意义,并针对我的Feed中的每个新条目不断检查此表?当匹配时,将它们添加到队列中(使用Redis)?
构建和建模此警报系统的最佳,最有效的方法是什么?我是否以正确的方式思考这个问题?在处理如此大量的数据时,是否有任何好的示例或教程?
答案 0 :(得分:1)
我不确定这样做的正确方法是什么,但是反复扫描桌子的想法听起来很费劲(即不可扩展)。
如果您为Redis中的每个博客创建了一个LIST,那该怎么办?值将是需要警报的用户ID。密钥名称将包含博客ID(例如:“user_blog_alerts:12345”)。
然后,当您获得博客12345的新帖子时,可以通过简单的查找来查看该密钥是否存在。如果是,则为列表中的每个用户启动警报。