|  |  |  | 
|---|
|  |  |  | svName = "" ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | System.out.println("") ; | 
|---|
|  |  |  | System.out.println("OOOOOOOOOO           OOOOOOOO       OOOOOOOO") ; | 
|---|
|  |  |  | System.out.println("@@@@@@@@@@@@@@@@#O    $@@@@@@@@&    @@@@@@@@#") ; | 
|---|
|  |  |  | System.out.println("@@@@@@@@@@@@@@@@@@@#    @@@@@@@@# $@@@@@@@@&") ; | 
|---|
|  |  |  | 
|---|
|  |  |  | System.out.println("@@@@@@@@@@@@@@@@@@@@@&       &@@@@@@@@   Startup in " + (System.currentTimeMillis() - start) + " MS" ) ; | 
|---|
|  |  |  | System.out.println("@@@@@@@@@@@@@@@@@@@#         &@@@@@@@@") ; | 
|---|
|  |  |  | System.out.println("@@@@@@@@@@@@@@@@#O           &@@@@@@@@") ; | 
|---|
|  |  |  | System.out.println("") ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }catch(Exception e){ | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | 
|---|
|  |  |  | //支持模块: springHibernate和 线程池 | 
|---|
|  |  |  | SupportUnitConfigVo supVo = new SupportUnitConfigVo() ; | 
|---|
|  |  |  | //短工作时长线程池,线程负责用时较短的工作任务 | 
|---|
|  |  |  | supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, 1, 1000, null) ;//池中最大线程数为所有CPU核数+1 | 
|---|
|  |  |  | supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, 1, 5, null) ;//池中最小线程数 | 
|---|
|  |  |  | supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, -1, 1000, null) ;//池中最大线程数为所有CPU核数+1 | 
|---|
|  |  |  | if(supVo.short_maxThread < 0){ | 
|---|
|  |  |  | supVo.short_maxThread = -1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, -1, 100, null) ;//池中最小线程数 | 
|---|
|  |  |  | if(supVo.short_minThread < 0){ | 
|---|
|  |  |  | supVo.short_minThread = -1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | supVo.short_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_freeTimeout", null, 1, 90, null) * 1000 ;//线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程,为了不清除,把minThread与maxThread设置相等 | 
|---|
|  |  |  | supVo.short_busyTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_busyTimeout", null, 1, 10, null) * 1000 ;//线程不间断工作时长(单位为秒)超时限,认为线程已经了崩溃,将强制清除,短工作时长设置为5秒 | 
|---|
|  |  |  | if(supVo.short_maxThread == 0 || supVo.short_minThread == 0){ | 
|---|
|  |  |  | supVo.enableShortThreadPool = false ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | supVo.enableShortThreadPool = true ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //长工作时长线程池,线程负责用时较长的工作任务 | 
|---|
|  |  |  | supVo.long_maxThread = conf.getSetAttrInt(doc, "config.support", "long_maxThread", null, -1, 1000, null)  ;//池中最大线程数,若为-1,不受限制 | 
|---|
|  |  |  | if(supVo.long_maxThread < 0){ | 
|---|
|  |  |  | supVo.long_maxThread = -1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, 0, 5, null) ;//池中最小线程数 | 
|---|
|  |  |  | supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, -1, 100, null) ;//池中最小线程数 | 
|---|
|  |  |  | if(supVo.long_minThread < 0){ | 
|---|
|  |  |  | supVo.long_minThread = -1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | supVo.long_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "long_freeTimeout", null, 1, 90, null) * 1000 ;//线程数空闲时长,若池中线程数量大于minThread,且有的线程空闲时长超过freeTimeout,则清除该线程 | 
|---|
|  |  |  | supVo.long_busyTimeout = conf.getSetAttrInt(doc, "config.support", "long_busyTimeout", null, -1, 10, null) ;//线程不间断工作时长(单位为秒)超时限,若为-1,不受限制 | 
|---|
|  |  |  | if(supVo.long_busyTimeout < 0){ | 
|---|
|  |  |  | supVo.long_busyTimeout = -1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(supVo.long_maxThread == 0 || supVo.long_minThread == 0){ | 
|---|
|  |  |  | supVo.enableLongThreadPool = false ; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | supVo.enableLongThreadPool = true ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | supVo.showStartInfo = showStartInfo ; | 
|---|
|  |  |  | 
|---|
|  |  |  | // Tcp Client 模块 | 
|---|
|  |  |  | TcpClUnitConfigVo tcpClVo = new TcpClUnitConfigVo(); | 
|---|
|  |  |  | tcpClVo.enable = conf.getSetAttrBoolean(doc, "config.tcpCl", "enable", null, null) ; | 
|---|
|  |  |  | tcpClVo.heartbeatTimes = conf.getSetAttrPlusInt(doc, "config.tcpCl", "heartbeatTimes", null, 1, 10, null) ;//连续配置次数心跳后发送一次数据 | 
|---|
|  |  |  | tcpClVo.sendInterval = conf.getSetAttrPlusInt(doc, "config.tcpCl", "sendInterval", null, 1, 60, null) ;//发送心跳或数据的时间间隔 | 
|---|
|  |  |  | if(tcpClVo.enable){ | 
|---|
|  |  |  | AdapterImp_TcpClUnit httpClAdap = new AdapterImp_TcpClUnit(); | 
|---|
|  |  |  | httpClAdap.setConfig(tcpClVo); | 
|---|