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

📄 modequeue.java

📁 中国联通短信通信协议
💻 JAVA
字号:
package com.wireless.sms.gwif.smsagent.workthread;

/**
 * <p>Title: WVAS-PLATFORM-SMS-GWIF</p>
 * <p>Description: 发送上行mo包到路由模块</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: moon</p>
 * @author: tech team
 * @version 1.0
 * @content 从MOQueue队列中取出对象,处理对象映射成MO,组成XML的文件,发送到路由模块
 */

import java.util.*;
import com.wireless.sms.pub.entity.MO;
import com.wireless.sms.gwif.smsagent.global.*;
import com.wireless.sms.pub.net.MOClientSocket;
import org.apache.log4j.Logger;
import com.wireless.sms.pub.mq.*;
import com.wireless.sms.gwif.smsagent.func.CommonData;

/**
 * 出队列的方法会在工作间突然断电的情况下丢失
 *  现在系统计划在文件中存放MO对象
 */
public class MODeQueue {

    private static MOQueue moqueue = GetMoMtGlobalForUsual.moqueue;
    private static Logger molog = LoggerConstant.mo_log;
    private Timer timer = null;
    private static MODeQueue _instance = new MODeQueue();

    public static MODeQueue getInstance(){
      return _instance;
    }

    private MODeQueue() {
    }

    public void start(){
		System.out.println("MOQueue starting...");
      if( timer == null ){
    	  for(int i = 0;i<SmsGWIFGlobal.MOOUT_IP.length;i++){
    		  for(int j = 0;j<SmsGWIFGlobal.MOOUT_PORT.length;j++){
    		        molog.info("启动 MO 发送线程....连接到,IP:"+SmsGWIFGlobal.MOOUT_IP[i]+"  PORT:"+SmsGWIFGlobal.MOOUT_PORT[j]);
//    		        LoggerConstant.
//    		        stat_log.info("启动 MO 发送线程....连接到,IP:"+SmsGWIFGlobal.MOOUT_IP[i]+"  PORT:"+SmsGWIFGlobal.MOOUT_PORT[j]);
    		  }
    	  }
        
        final MOClientSocket moSender = new MOClientSocket(SmsGWIFGlobal.MOOUT_IP, SmsGWIFGlobal.MOOUT_PORT);
        moSender.setMOQueue(moqueue);
        moSender.setLog(molog);
        moSender.setMonitor(SmsGWIFGlobal.monitorHosta,SmsGWIFGlobal.monitorPorta);

        timer = new Timer(true);
        timer.schedule(new TimerTask(){
          public void run(){
            MO mo = (MO)moqueue.removeNoWait();

            if (mo != null) {
                if (CommonData.getTestData().containsKey(mo.getSrcTermID()) && (!"true".equals(mo.getRemark1()))) {
                    new SpecialMOSender(mo).start();
                  } else if (moSender.sendMO(mo)) {
                    molog.info("send to Router " + SmsGWIFGlobal.MOOUT_IP[0] + " true");
                  } else {
                	  molog.info("send to Router " + SmsGWIFGlobal.MOOUT_IP[0] + " false,send Monitor information!");
                      //与路由连接不通,发送监控信息
                      SmsGWIFGlobal.sendMonitor("R000101");

                      try {
                        Thread.sleep(300000);
                      }
                      catch (Exception e) {
                      }
                    }
            } else {
                try {
                    Thread.sleep(90);
                } catch (Exception e) { }
              }
          }
        }, 100, 10);
      }
    }

    public void stop() {
        if( timer != null ){
          timer.cancel();
          timer = null;
        }
    }

    public static void main(String[] args) {
    }
}

⌨️ 快捷键说明

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