Java 基于时间的通知体系结构

Java 基于时间的通知体系结构,java,database-design,architecture,notifications,push-notification,Java,Database Design,Architecture,Notifications,Push Notification,我正在设计一个通知服务(服务器)。我可以有两种通知:一种是立即发送,另一种是在将来某个时间发送 是否有处理未来通知的框架 我知道我可以编写后台工作人员,例如,他们可以对数据库进行采样,以查找需要发送的通知,但我确信数百万人已经尝试解决这个问题,我更愿意重用经验证的解决方案 我还没有决定框架/数据库。我想我应该使用vertx.io或Jetty(WebSockets)来进行推送通知。我不确定DB,因为我希望它支持这些未来的通知 更新: 对于“实时”通知(用户收件箱中存在的通知)和将来的通知,您建议我

我正在设计一个通知服务(服务器)。我可以有两种通知:一种是立即发送,另一种是在将来某个时间发送

是否有处理未来通知的框架

我知道我可以编写后台工作人员,例如,他们可以对数据库进行采样,以查找需要发送的通知,但我确信数百万人已经尝试解决这个问题,我更愿意重用经验证的解决方案

我还没有决定框架/数据库。我想我应该使用vertx.io或Jetty(WebSockets)来进行推送通知。我不确定DB,因为我希望它支持这些未来的通知

更新: 对于“实时”通知(用户收件箱中存在的通知)和将来的通知,您建议我如何将数据保存在DB中

更新: 我正在考虑使用:

  • 防波堤+弹簧,用于WebSocket和SockJS+石英
  • Vertx.io(支持Websocket和Sockjs)

  • 有什么建议吗?

    一种方法是将通知传递给调度组件。调度组件使用所有通知,存储它,并定期检查是否要发送通知


    这将允许将侦听器附加到通知,而不会在发布服务器端堆积通知。

    ?不确定这是否可扩展。对于创建的每一个新通知,我都会为其创建一个作业/安排一个作业?这是一般的想法-我同意。我的问题是关于在我们自己实现之前已经存在的框架/解决方案。请确保您每次勾选时都检查计划了什么(如果有),而不是轮询每个作业,以确定它是否应该每次运行。如果您使用的是Java Quartz,您可以将其从手中拿开。@IDdlerwins,+1表示Quartz感谢您的回答。JavaQuartz看起来不错,但这只是为了调度。是否有任何东西可以结合我存储数据的方式?我提醒it的通知,所以我很好奇是否有一个结合了这两个的DB框架,所以我不需要编写“工作代码”来从DB中获取一些东西,并在时间到来时进行处理)这些可以提供想法,