📄 modequeue.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 + -