elastic-lite-job作业运行痕迹
当elastic-job开启运行时,需要记录作业启动、执行、销毁过程运行痕迹,elastic-job通过guava组件库提供EventBus事件服务总线提供发布/订阅模式实现事件运行痕迹记录到数据库。
观察者模式是对象行为模式,又叫发布-订阅(Publish/Subscribe)模式、源-监听器(Source/Listener)模式。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。如果这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
下图EventBus总体抽象类图
以下是事件运行痕迹主要类图
①JobEventListener定义对象监听接口,一个定义了作业执行事件,另一个定义了作业状态痕迹事件
②JobEventRdbListener是监听对象实现类,把具体事件执行状态记录到数据库
③JobEventBus主要功能事件注册和发布事件,register()注册事件方法,通过调用JobEventConfiguration获取监听对象,并注册到事件服务总线
④LiteJobFacade调用JobEventBus的post方法发布JobEvent事件
/**
* 作业事件标识.
*
* @author zhangliang
*/
public interface JobEventIdentity {
/**
* 获取作业事件标识.
*
* @return作业事件标识
*/
String getIdentity();
}
在Java语言中,有些接口内部没有声明任何方法,也就是说实现这些接口的类不需要重写任何方法,这些没有任何方法声明的接口又被叫做标识接口,
标识接口对实现它的类没有任何语义上的要求,它仅仅充当一个标识的作用,用来表明实现它的类属于一个特定的类型。这个标签类似于汽车的标志图标,每当人们看到一个汽车的标志图标时,就能知道这款汽车的品牌。Java类库中已存在的标识接口有Cloneable和Serializable等。在使用的时候会经常用instanceof来判断实例对象的类型是否实现了一个给定的标识接口。