📄 messagelauncherstatusmonitorimpl.java.svn-base
字号:
package com.infobank.superchannel.admin.monitor.implementation;import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;import java.rmi.registry.Registry;import java.rmi.server.UnicastRemoteObject;import java.util.List;import com.infobank.superchannel.admin.monitor.DatabaseCacheStatusMonitor;import com.infobank.superchannel.admin.monitor.MessageLauncherStatusMonitor;import com.infobank.superchannel.daemon.messagelauncher.MessageLauncherDaemon;import com.infobank.superchannel.observer.implementation.CompoundMessageLauncherStatusObserver;import com.infobank.superchannel.observer.implementation.FilePersistenceMessageLauncherStatusObserver;import com.infobank.superchannel.observer.implementation.MemoryPersistenceMessageLauncherStatusObserver;import com.infobank.superchannel.pojo.ControllerUserToken;import com.infobank.superchannel.pojo.GenericLog;import com.infobank.superchannel.pojo.MessageBucketLog;import com.infobank.superchannel.pojo.TextMessageLog;import com.infobank.superchannel.util.DaemonConfiguration;/** * @author Xiaoguang Sun * @version 类说明: 信息发送服务器的状态监控器远程实现 */public class MessageLauncherStatusMonitorImpl implements MessageLauncherStatusMonitor { // 信息发送服务器状态复合观察者对象 private CompoundMessageLauncherStatusObserver observer=null; // 信息发送服务器对象 private MessageLauncherDaemon daemon=null; /** * 构造函数 * @param deamon 信息发送服务器对象 */ public MessageLauncherStatusMonitorImpl(MessageLauncherDaemon daemon){ this.daemon=daemon; try{ observer=new CompoundMessageLauncherStatusObserver(new FilePersistenceMessageLauncherStatusObserver(daemon)); UnicastRemoteObject.exportObject(this, 0); daemon.attachObserver(observer); } catch(RemoteException ex){ System.err.println("fatal error: could not bind monitor to registry"); throw new RuntimeException("fatal error: could not bind monitor to registry"); } } /** * 构造函数 * @param observer 观察者对象 * @deprecated 仅供测试使用 */ public MessageLauncherStatusMonitorImpl(MemoryPersistenceMessageLauncherStatusObserver observer){ this.observer=new CompoundMessageLauncherStatusObserver(observer); } /** * 获取自上次调用此方法后产生的所有消息状态更新日志 * @param token 用户访问令牌 * @return 自上次调用此方法后产生的所有消息状态更新日志 */ public List<TextMessageLog> getChangeMessageStatusLog(ControllerUserToken token) { return observer.getChangeMessageStatusLog(token); } /** * 获取当前普通消息队列尺寸 * @param token 用户访问令牌 * @return 当前普通消息队列尺寸 */ public int getGeneralMessageQueueSize(ControllerUserToken token) { return observer.getGeneralMessageQueueSize(token); } /** * 获取当前批量消息队列尺寸 * @param token 用户访问令牌 * @return 当前批量消息队列尺寸 */ public int getMassMessageQueueSize(ControllerUserToken token) { return observer.getMassMessageQueueSize(token); } /** * 获取自上次调用此方法后产生的所有新普通消息组日志 * @param token 用户访问令牌 * @return 自上次调用此方法后产生的所有新普通消息组日志 */ public List<MessageBucketLog> getNewGeneralMessageBucketLog(ControllerUserToken token) { return observer.getNewGeneralMessageBucketLog(token); } /** * 获取自上次调用此方法后产生的所有新批量消息组日志 * @param token 用户访问令牌 * @return 自上次调用此方法后产生的所有新批量消息组日志 */ public List<MessageBucketLog> getNewMassMessageBucketLog(ControllerUserToken token) { return observer.getNewMassMessageBucketLog(token); } /** * 为当前用户访问令牌建立监控信息绑定 * @param token 用户访问令牌 * @return 操作是否成功 */ public boolean attach(ControllerUserToken token){ return observer.attachObserver(token, new MemoryPersistenceMessageLauncherStatusObserver()); } /** * 为当前用户访问令牌解除监控信息绑定 * @param token 用户访问令牌 * @return 操作是否成功 */ public boolean detach(ControllerUserToken token){ return observer.detachObserver(token); } /** * 获取自上次调用此方法后产生的所有通用日志 * @param token 用户访问令牌 * @return 自上次调用此方法后产生的所有通用日志 */ public List<GenericLog> getGenericLog(ControllerUserToken token){ return observer.getGenericLog(token); } /** * 获取当前被监控组件的状态 * @param token 用户访问令牌 * @return 当前被监控组件的状态 */ public String getState(ControllerUserToken token){ return daemon.getState(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -