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

📄 generalmessagequeue.java.svn-base

📁 监控整个SP系统的SMS信息通道的发送情况并且生成日志。 支持权限判断。
💻 SVN-BASE
字号:
package com.infobank.superchannel.daemon.messagelauncher;import java.util.LinkedList;import java.util.Queue;import java.util.concurrent.atomic.AtomicInteger;import com.infobank.superchannel.pojo.TextMessage;import com.infobank.superchannel.util.DaemonConfiguration;/** * @author Xiaoguang Sun * @version 类说明: 普通短信息队列实现 */public class GeneralMessageQueue implements MessageQueue {  // 消息队列  private Queue<TextMessage> messagesQueue=new LinkedList<TextMessage>();    // capacity  private static int capacity=0;    /**   * 初始化批量短信队列   * @param daemon 消息发送服务器对象   */  public static boolean init(MessageLauncherDaemon daemon){  // 获取批量短信息队列单一内容短信一次发送配额    DaemonConfiguration config=DaemonConfiguration.getInstance();    String tag=daemon.getTag();    StringBuilder sb=new StringBuilder();    sb.append("/daemon[@type='MessageLauncher' and @tag='");    sb.append(tag);    sb.append("']/message/queue[@type='General']/capacity");    try{      capacity=config.getInt(sb.toString());  }  catch(Exception ex){    return false;  }  return true;  }  /**   * 新增待发短消息   * @param messages 待发送短消息   */  public void addMessage(Queue<TextMessage> messages) {  messagesQueue.addAll(messages);  messages.clear();  }  /**   * 新增待发短消息   * @param message 待发送短消息   */  public void addMessage(TextMessage message) {  messagesQueue.add(message);  }  /**   * 从消息队列中取出一定数目的消息   * @return 取出的待发送短消息   */  public Queue<TextMessage> getMessage(int number) {    Queue<TextMessage> result=new LinkedList<TextMessage>();    for(int idx=0;idx<number;++idx){    TextMessage message=messagesQueue.poll();    if(message==null){    // no enough messages    break;      }    result.add(message);  }      return result;  }  /**   * 从消息队列中取出一条待发短消息   * @return 取出的待发送短消息   */  public TextMessage getMessage() {  return messagesQueue.poll();  }  /**   * 取得消息队列当前长度   * @return 消息队列当前长度   */  public int getMessageQueueSize() {  return messagesQueue.size();  }  public boolean isFull() {  return messagesQueue.size()>=capacity;  }}

⌨️ 快捷键说明

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