编程语言
首页 > 编程语言> > java – 如何设计实时警报系统?

java – 如何设计实时警报系统?

作者:互联网

我有一个要求,当db中的记录未按指定的时间间隔更新/更改时,我必须发送警报.例如,如果收到的采购订单未在一小时内处理,则应将提醒发送给交货经理.

提醒/警报应该以间隔(包括秒)发送.如果上次修改时间是13:55:45,则应该触发警报14:55:45.可能需要跟踪数百万行.

简单的方法可能是实现自定义调度程序,所有记录都将在其中注册.但是应该轮询数据库以每秒查找更改,这将导致性能问题.

更新:

另一种基本方法是为每条记录创建一个线程并将其置于休眠状态1小时(或)使用一些具有超时的排队概念.但它仍然存在性能问题

有关更好的实施方法的想法吗?

解决方法:

可能使用内部JMS队列将是更好的解决方案 – 例如,您可能希望使用带有hornetq的预定消息功能http://docs.jboss.org/hornetq/2.2.2.Final/user-manual/en/html/examples.html#examples.scheduled-message.

您可以要求经纪人在1小时后发布警报消息.另一方面,在处理某些交易活动期间,您可以手动删除此消息,这意味着交易活动已经过处理而没有错误.

标签:java,algorithm,large-data-volumes
来源: https://codeday.me/bug/20190530/1182226.html