⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 channelstatusmonitorimpl.java

📁 监控整个SP系统的SMS信息通道的发送情况并且生成日志。 支持权限判断。
💻 JAVA
字号:
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 org.apache.commons.configuration.Configuration;import com.infobank.superchannel.admin.monitor.ChannelStatusMonitor;import com.infobank.superchannel.admin.monitor.MessageLauncherStatusMonitor;import com.infobank.superchannel.daemon.messagelauncher.MessageLauncherDaemon;import com.infobank.superchannel.daemon.messagelauncher.channel.ChannelPlugin;import com.infobank.superchannel.observer.implementation.CompoundChannelStatusObserver;import com.infobank.superchannel.observer.implementation.FilePersistenceChannelStatusObserver;import com.infobank.superchannel.observer.implementation.MemoryPersistenceChannelStatusObserver;import com.infobank.superchannel.pojo.ChannelInfo;import com.infobank.superchannel.pojo.ControllerUserToken;import com.infobank.superchannel.pojo.GenericLog;import com.infobank.superchannel.pojo.TextMessageLog;import com.infobank.superchannel.util.DaemonConfiguration;/** * @author Xiaoguang Sun * @version 类说明: 通道状态监控器实现 */public class ChannelStatusMonitorImpl implements ChannelStatusMonitor {  // 通道状态复合观察者对象  private CompoundChannelStatusObserver observer=null;  // 通道插件对象  private ChannelPlugin channel=null;  /**   * 构造函数   * @param channel 通道插件对象   */  public ChannelStatusMonitorImpl(MessageLauncherDaemon daemon,ChannelPlugin channel){    this.channel=channel;    try{      observer=new CompoundChannelStatusObserver(new FilePersistenceChannelStatusObserver(daemon));      UnicastRemoteObject.exportObject(this, 0);      channel.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 观察者对象   * @return 此通道累计发送短信息数目   * @deprecated 注意,此方法仅供测试程序使用   */  public ChannelStatusMonitorImpl(MemoryPersistenceChannelStatusObserver observer){    this.observer=new CompoundChannelStatusObserver(observer);  }  /**   * 取得此通道消息发送平均所用时间(单位毫秒:1000毫秒=1秒)   * @param token 用户访问令牌   * @return 此通道消息发送平均所用时间   */  public int getAverageTimeUsagePerMessage(ControllerUserToken token) {    return observer.getAverageTimeUsagePerMessage(token);  }  /**   * 取得此通道描述信息   * @param token 用户访问令牌   * @return 此通道描述信息   */  public ChannelInfo getChannelInfo(ControllerUserToken token) {    return channel.getChannelInfo();  }  /**   * 取得此通道自上次调用此方法后所发送的所有短信息的日志   * @param token 用户访问令牌   * @return 此通道自上次调用此方法后所发送的所有短信息的日志   */  public List<TextMessageLog> getDeliverMessageLog(ControllerUserToken token) {    return observer.getDeliverMessageLog(token);  }  /**   * 取得此通道累计发送短信息数目   * @param token 用户访问令牌   * @return 此通道累计发送短信息数目   */  public int getNumberOfSentMessages(ControllerUserToken token) {    return observer.getNumberOfSentMessages(token);  }  /**   * 为当前用户访问令牌建立监控信息绑定   * @param token 用户访问令牌   * @return 操作是否成功   */  public boolean attach(ControllerUserToken token){    return observer.attachObserver(token, new MemoryPersistenceChannelStatusObserver());  }  /**   * 为当前用户访问令牌解除监控信息绑定   * @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 int getNumberOfFailedMessages(ControllerUserToken token){    return observer.getNumberOfFailedMessages(token);  }  /**   * 取得此通道累计发送短信息成功次数   * @param token 用户访问令牌   * @return 此通道累计发送短信息成功次数   */  public int getNumberOfSuccessfulMessages(ControllerUserToken token){    return observer.getNumberOfSuccessfulMessages(token);  }  /**   * 获取当前被监控组件的状态   * @param token 用户访问令牌   * @return 当前被监控组件的状态   */  public String getState(ControllerUserToken token){    return channel.getState();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -