Java 整理/管理数据以填充;“现场活动提要”;在web应用程序中

Java 整理/管理数据以填充;“现场活动提要”;在web应用程序中,java,web-applications,feed,polling,Java,Web Applications,Feed,Polling,我有一个关于管理网站上的实时提要/轮询的抽象问题 我正在创建一个web应用程序(基于Java/Spring/Hibernate构建),在用户的主页上,我希望从该团队的所有成员那里获得最新活动的实时提要,我正在尝试找出在服务器端处理此查询的最佳方法 暴力方式是加载当前用户的队友列表,然后遍历他的每个队友,加载他们的最新对话/文件上传/等等,然后将所有这些活动合并到一个按时间戳排序的列表中并返回该列表(举例来说,我们只返回提要的前10个最新活动) 但是,这似乎很难执行,特别是因为需要定期执行此操作(

我有一个关于管理网站上的实时提要/轮询的抽象问题

我正在创建一个web应用程序(基于Java/Spring/Hibernate构建),在用户的主页上,我希望从该团队的所有成员那里获得最新活动的实时提要,我正在尝试找出在服务器端处理此查询的最佳方法

暴力方式是加载当前用户的队友列表,然后遍历他的每个队友,加载他们的最新对话/文件上传/等等,然后将所有这些活动合并到一个按时间戳排序的列表中并返回该列表(举例来说,我们只返回提要的前10个最新活动)

但是,这似乎很难执行,特别是因为需要定期执行此操作(取决于轮询间隔)

我还考虑过进行所有可能的活动(对话/状态更新/上传)扩展活动类,然后在DAO中直接使用SQL/JPQL查询,从一组要返回的用户中选择所有最新的活动,但担心绕过缓存并继续访问数据库也会降低性能

以前有人处理过这类问题吗?有人知道什么是好方法吗


谢谢!

这是一个旧的,但以下是我为此所做的:

  • 应显示在活动墙上的所有任务都将扩展
    活动
    (事实已经如此)
  • 创建了一个新的
    通知
    对象,
    通知
    有一个指向基础
    活动
    的链接和一个指向用户(被通知者)的链接
  • 活动
    创建了一个预持久化钩子,该钩子为要持久化的
    活动
    创建了一个
    通知
    对象-它为每个感兴趣的用户(所有关注持久化
    活动的用户
    的用户)执行此操作

  • 目前,
    通知
    被持久化/检索到数据库中-可能无法扩展到非常高的卷,但我认为这种方法支持移动到基于队列的系统(例如正是为此目的而设计的系统)。由于它是针对每个用户的,因此它还提供了一个选项,可以为重要通知设置一个读/未读通知标志。

    虽然我从未实现过类似的功能,但我想pubsubhubbub解决方案可能会对您有所帮助:谢谢Lucas,我快速查看了一下,但这与我需要的功能不太一样-也许我没有描述我的问题,我已经回答了很好,但是我将从by数据模型(在Hibernate中)创建一个提要,并希望找到一种定期处理Hibernate对象的有效方法来创建提要。