📄 locprefixmain.java
字号:
package ffcs.lbp.le;
import java.io.IOException;
import ffcs.config.Config;
import ffcs.config.Module;
import ffcs.lbp.common.Constant;
import ffcs.lbp.common.TcpServer;
import ffcs.lbp.dao.RouteDAO;
import ffcs.logging.Log;
import ffcs.logging.LogFactory;
/**
* <p>Title: 小区推送LBP项目</p>
* <p>Description:
* 定位前置模块的入口程序 相关程序的初始化,程序退出时地,进行相关资源的释放,
* 最好该入口程序能做成JMX标准方式来管理,用JMX服务进行热(不停止程序)管理
* </p>
* <p>Copyright: 2008 福建福富软件技术股份有限公司 </p>
* <p>Company: 福建福富软件技术股份有限公司</p>
* @author chenxin
* @version v1.0
*/
public class LocPrefixMain {
public static final String MODEUL_NAME = "LocPrefix";
public static final String LocPrefix_PORT = "LocPrefixPort";
// private static TcpServer ts = null;
private static TcpServer LocPrefixServer = null;
// private static UDPAlarmServer udp =null;
private static Log log = LogFactory.getLog(LocPrefixMain.class);
private static boolean running=true;
public static int traceUdpPort=10030;
public static int port=10002;
public static int LocPrefixPORT=10003;
/**
* 入口方法
* @param args 启动时的传入参数
*/
public static void main(String[] args) {
try {
Module module = Config.getInstance().getModule(MODEUL_NAME);
port = module.getPort();
// LocPrefixPORT = Integer.parseInt(module.getProperties(LocPrefix_PORT));
} catch (Exception e) {
log.error("读配置文件出错", e);
System.exit(0);
}
// 初始化LocPrefixIO管理程序
LocPrefixIOProcess mgip = new LocPrefixIOProcess();
//初始化服务监听程序
// ts = new TcpServer(port, mgip);
LocPrefixServer = new TcpServer(port,mgip);
//如果服务监听程序启动不成功,退出程序
/* if (!ts.startServer()) {
log.error("TcpServer程序启动不成功,请检查端口是否已用:"+port);
destroy();
}*/
//如果服务监听程序启动不成功,
if (!LocPrefixServer.startServer()) {
destroy();
log.error("LocPrefixServer程序启动不成功,请检查端口是否已用:"+LocPrefixPORT);
}
try {
mgip.start();
} catch (IOException ioe) {
ioe.printStackTrace();
destroy();
}
// initUDPServer();
log.info("程序正常启动完成");
/**
* 其它线程调用,{@link #SmscMain.exit()} 停止该程序;
*/
while(running){
//读取配置文件信息
try{
Constant.readConfig();
//每隔一定时间间隔,更新回送路由表
RouteDAO.refreshRoute();
}catch(Exception e){
log.error("读取配置信息出错",e);
}
try {
Thread.sleep(60000);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
destroy();
}
/**
* 初始化流程追踪的UDP相关程序,
* 如果流程追踪初始失败,只是该功能失效,不影响正常的业务功能
*/
/* private static void initUDPServer(){
traceUdpPort = Integer.parseInt(Config.getInstance().getGlobalProp(
"trace_server_port"));
TraceWork work = new TraceWork();
UdpProcess udpProcess = new UdpProcess(work, 1);
try {
udp = new UDPAlarmServer(traceUdpPort, udpProcess);
udp.start();
} catch (Exception ioe) {
if(udp!=null){
udp.stopUDP();
}
log.error("初始化流程追踪UDP错误,流程追踪功能可能失效",ioe);
}
}*/
/**
* 程序退出方法
*/
public static void exit() {
running=false;
}
/**
* 退出程序,进行相关的资源处理
*/
private static void destroy() {
// ts.stopThread();
LocPrefixServer.stopThread();
/* 进行相关资源的释放处理 */
// DBPool.destroyPool();// 数库库连接资源关闭
log.error("程序退出");
System.exit(0);// 退出程序
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -