背景
接触新的项目的几天时间,除了传统的CRUD业务之外,项目用到的集群锁,以及事件监听广播机制等使用,使人联系其java.util.concurrent.futureTask.的使用,本节将从项目里遇到的各种业务场景中使用的广播事件来对异步线程池的处理广播事件总结,并且对这种事件的广播机制延伸的处理方案的提出改良。
如何使用异步线程池处理任务事件
笔者从事电商项目有一段时间,对于传统的电商项目的了解就是局限于集群,使用统一的redis服务器实现事务锁,达到数据的一致,除此之外,电商项目没有使用到流行的队列,如rabbitMQ之类的成熟工具来处理消息的消费以及生产的业务。而是使用了spring的广播机制来处理,网上看到一遍非常详细介绍这个使用的文章,而笔者从事的电商项目里面同样也是使用applicationContext的applicationListener的监听以及applicationEvenPublisher来处理异步消息的消费。比如分享的消息,推送的消息,等等业务场景都使用使用这样的方式来实现event的监听以及消费。这里重点是事件的定义,定义好了事件需要的处理的属性。
@lombok
public class DemoApplicationEvent extends ApplicationEvent {
private static final long serialVersionUID = -3452985719192365159L;
private String eventName;
}
定义好了需要处理的事件就是定义监听的listener,