📄 reloadprocess.java
字号:
package com.wireless.sms.gwif.smsagent.workthread;
import org.apache.log4j.Logger;
import java.util.*;
import java.io.*;
//import com.wireless.sms.gwif.smsagent.*;
import com.wireless.sms.pub.mq.*;
import com.wireless.sms.pub.net.DoBackMOMT;
import com.wireless.sms.pub.net.MTServerSocket;
import com.wireless.sms.pub.entity.MT;
//import com.wireless.sms.gwif.smsagent.func.*;
import com.wireless.gwif.socketconn.*;
import com.wireless.sms.gwif.smsagent.global.*;
public class ReloadProcess {
private SmsGWIFGlobal smsagent = SmsGWIFGlobal.getInstance();
MTQueue mtqueue = GetMoMtGlobalForUsual.mtqueue;
MOQueue moqueue = GetMoMtGlobalForUsual.moqueue;
ObjectQueue objqueue = ObjectQueue.getInstance();
Logger statlog = LoggerConstant.stat_log;
private String [] mtflowfilepath = smsagent.MTOVERFLOW;
private String objflowfilepath = smsagent.STATOVERFLOW;
private String moflowfilepath = smsagent.MOOVERFLOW;
private static ReloadProcess instance = null;
public static synchronized ReloadProcess getInstance(){
if( instance == null ){
instance = new ReloadProcess();
}
return instance;
}
private ReloadProcess() {
}
public void setLog(Logger log) {
this.statlog = log;
}
public void stopForReceive(){
//停止接收线程
for(int i=0; i<SmsGWIFGlobal.MTserverSocketVec.size(); i++){
MTServerSocket mtServerSocket =
(MTServerSocket)SmsGWIFGlobal.MTserverSocketVec.elementAt(i);
mtServerSocket.stop();
}
// MtReceiver2.stop();
}
public void stopForSendMO(){
//停止发送线程
MODeQueue.getInstance().stop();
// MoSender.stop();
}
public void stopForSendObj(){
//停止发送线程
ObjectDbSender.stop();
}
public void stopForConnect(){
boolean opeFlag = false;
//停止与运营商的连接
for(int i=0; i<SmsGWIFGlobal.vManage.size(); i++){
ConnManageInterface oct =
(ConnManageInterface)SmsGWIFGlobal.vManage.elementAt(i);
oct.stop();
for( int j=0; !(opeFlag = oct.isFinishStop()) && j<600; j++ ){
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
statlog.info("停止与运营商连接 - "+(i+1) + (opeFlag?"正常退出":"强制退出"));
}
}
public void stopForOther(){
DoOverflowThread.getInstance().stop();
ControlwindowProcessThread.getInstance().stop();
// SmsGWIFGlobal.reloadServerSocket.stop();
}
public void stopForSaveData(){
Vector vqueue = mtqueue.getPriorityQueue();
for(int i=0; i<vqueue.size(); i++){
DoBackMOMT doBackmt = new DoBackMOMT( (MTQueue)vqueue.elementAt(i) ,mtflowfilepath[i]);
// doBackmt.setLog(statlog);
doBackmt.flowAllMT();
}
ControlWindow controlWindow = ControlWindow.getInstance();
HashMap cwmap = controlWindow.getMap();
Iterator item = cwmap.keySet().iterator();
while (item.hasNext()) {
Object tmpkey = item.next();
Vector tmpv = (Vector)cwmap.get(tmpkey);
MT tmpmt = (MT)tmpv.get(0);
tmpmt.setStatus("T");//超时
objqueue.add(tmpmt);
}
DoBackMOMT doBackmo = new DoBackMOMT(moqueue, moflowfilepath);
DoBackMOMT doBackobj = new DoBackMOMT(objqueue, objflowfilepath);
// doBackmo.setLog(statlog);
// doBackobj.setLog(statlog);
doBackmo.flowAllMO();
doBackobj.flowAllObj();
// statlog.info("保存数据完毕");
}
public void stopForClientController(){
ClientController.stop();
}
public void stopForSendMonitor(){
SendMonitor.getInstance().stop();
}
public void stopForNightSaver(){
NightSaver.getInstance().stop();
}
public void stopInterface() {
try{
stopForSaveData();
statlog.info("保存数据完毕");
}catch(Exception e){
LoggerConstant.stat_log.error("SaveData Exception :", e);
}
try{
stopForSendObj();
// statlog.info("停止向入库模块发送数据");
}catch(Exception e){
LoggerConstant.stat_log.error("StopObjOut Exception :", e);
}
try{
stopForSendMO();
// statlog.info("停止向路由器发送 MO 数据");
}catch(Exception e){
LoggerConstant.stat_log.error("StopMOOut Exception :", e);
}
try{
stopForOther();
// statlog.info("停止 溢出.滑动窗口.入库.接受标志 线程");
}catch(Exception e){
LoggerConstant.stat_log.error("StopOther Exception :", e);
}
try{
stopForNightSaver();
// statlog.info("停止夜间保存 MT 线程完毕");
}catch(Exception e){
LoggerConstant.stat_log.error("StopNightSaver Exception :", e);
}
try{
stopForReceive();
// statlog.info("停止从路由器接受 MT 数据");
}catch(Exception e){
LoggerConstant.stat_log.error("StopMTIn Exception :", e);
}
try{
stopForSendMonitor();
// statlog.info("停止监控线程完毕");
}catch(Exception e){
LoggerConstant.stat_log.error("StopSendMonitor Exception :", e);
}
try{
stopForSaveData();
// statlog.info("保存数据完毕");
}catch(Exception e){
LoggerConstant.stat_log.error("SaveData Exception :", e);
}
try{
SmsGWIFGlobal.vManage.clear();
// statlog.info("程序成功退出!");
}catch(Exception e){
LoggerConstant.stat_log.error("Clear Exception :", e);
}
statlog.info("Stop Interface Framework Over !!! ");
}
/**
* 重新启动 当运营商断开连接时调用
*/
public void restartInterface(){
stopInterface();
/**
* Write more code here.
*/
}
public String getStackTrace(Exception e) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
return sw.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -