package com.dy.rtuMw.server.msCenter;
|
|
import com.dy.common.mw.UnitAdapterInterface;
|
import com.dy.common.mw.UnitCallbackInterface;
|
import com.dy.common.mw.UnitInterface;
|
|
/**
|
* @Author: liurunyu
|
* @Date: 2025/2/12 13:55
|
* @Description
|
*/
|
public class MsCenterUnit implements UnitInterface {
|
|
private static MsCenterUnit instance = new MsCenterUnit() ;
|
|
public static MsCenterUnitAdapter adapter ;
|
public static MsCenterConfigVo confVo ;
|
|
private static MsCenterManager manager ;
|
|
private MsCenterUnit(){} ;
|
|
public static MsCenterUnit getInstance(){
|
return instance ;
|
}
|
|
@Override
|
public void setAdapter(UnitAdapterInterface adapter) throws Exception {
|
if(adapter == null){
|
throw new Exception("消息中心模块适配器对象不能为空!") ;
|
}
|
MsCenterUnit.adapter = (MsCenterUnitAdapter)adapter ;
|
MsCenterUnit.confVo = MsCenterUnit.adapter.getConfig() ;
|
if(MsCenterUnit.confVo == null){
|
throw new Exception("消息中心模块配置对象不能为空!") ;
|
}
|
}
|
|
/**
|
* 初始化
|
*/
|
@Override
|
public void start(UnitCallbackInterface callback) throws Exception {
|
if(confVo.enable){
|
manager = MsCenterManager.getInstance() ;
|
manager.initOption(confVo);
|
manager.start(1000L, confVo.notifyMsInterval, manager);
|
callback.call(null) ;
|
System.out.println("消息中心模块成功启动");
|
}else{
|
System.out.println("消息中心模块配置不启动");
|
}
|
|
}
|
|
@Override
|
public void stop(UnitCallbackInterface callback) throws Exception {
|
if(manager != null){
|
manager.stop();
|
}
|
}
|
|
/**
|
* 存入消息
|
* @param msNode
|
*/
|
public void pushMs(MsObj msNode){
|
if(manager != null){
|
manager.pushMs(msNode) ;
|
}
|
}
|
|
/**
|
* 注册消息接收器
|
* @param webUrl 接收者web http post url
|
*/
|
public void registerMsReceiver(String webUrl){
|
if(manager != null){
|
manager.registerMsReceiver(webUrl) ;
|
}
|
}
|
|
}
|