| New file | 
 |  |  | 
 |  |  | package com.dy.common.mw.support; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | import com.dy.common.threadPool.TreadPoolFactory; | 
 |  |  | import com.dy.common.mw.UnitAdapterInterface; | 
 |  |  | import com.dy.common.mw.UnitInterface; | 
 |  |  | import com.dy.common.mw.UnitCallbackInterface; | 
 |  |  |  | 
 |  |  | public class SupportUnit implements UnitInterface { | 
 |  |  | 	 | 
 |  |  |    private final static SupportUnit instance = new SupportUnit() ; | 
 |  |  |    private static boolean started = false ; | 
 |  |  | 	 | 
 |  |  |    private SupportUnitAdapter adapter ; | 
 |  |  | 	 | 
 |  |  |    private SupportUnitConfigVo confVo ; | 
 |  |  | 	 | 
 |  |  |  | 
 |  |  |    private SupportUnit(){} | 
 |  |  | 	 | 
 |  |  |    public static SupportUnit getInstance(){ | 
 |  |  |       return instance ; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    @Override | 
 |  |  |    public void setAdapter(UnitAdapterInterface adapter) throws Exception { | 
 |  |  |       if(adapter == null){ | 
 |  |  |          throw new Exception("支持模块适配器对象不能为空!") ; | 
 |  |  |       } | 
 |  |  | 		 | 
 |  |  |       this.adapter = (SupportUnitAdapter)adapter ;  | 
 |  |  |       this.confVo = this.adapter.getConfig() ; | 
 |  |  |       if(this.confVo == null){ | 
 |  |  |          throw new Exception("支持模块配置对象不能为空!") ; | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    @Override | 
 |  |  |    public void start(UnitCallbackInterface callback) throws Exception { | 
 |  |  |       if(!started){ | 
 |  |  |          started = true ; | 
 |  |  |          if(confVo.enableShortThreadPool) { | 
 |  |  |             TreadPoolFactory.initThreadPoolShort("短任务工作线程池", | 
 |  |  |                   this.confVo.short_maxThread, | 
 |  |  |                   this.confVo.short_minThread, | 
 |  |  |                   this.confVo.short_freeTimeout, | 
 |  |  |                   this.confVo.short_busyTimeout); | 
 |  |  |          }else{ | 
 |  |  |             System.out.println("短线程池配置不启动"); | 
 |  |  |          } | 
 |  |  |          if(confVo.enableLongThreadPool) { | 
 |  |  |             TreadPoolFactory.initThreadPoolLong("长任务工作线程池", | 
 |  |  |                   this.confVo.long_maxThread, | 
 |  |  |                   this.confVo.long_minThread, | 
 |  |  |                   this.confVo.long_freeTimeout, | 
 |  |  |                   this.confVo.long_busyTimeout); | 
 |  |  |          }else{ | 
 |  |  |             System.out.println("长线程池配置不启动"); | 
 |  |  |          } | 
 |  |  |          if(this.confVo.showStartInfo){ | 
 |  |  |             System.out.println("线程池模块成功启动"); | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       callback.call(null); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    @Override | 
 |  |  |    public void stop(UnitCallbackInterface callback) { | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  |    /* | 
 |  |  |    public static void main(String[] args) throws Exception{ | 
 |  |  |       SupportUnitConfigVo supVo = new SupportUnitConfigVo() ; | 
 |  |  |       //短工作时长线程池,线程负责用时较短的工作任务 | 
 |  |  |       supVo.short_maxThread = 100 ; | 
 |  |  |       supVo.short_freeTimeout = 5 ; | 
 |  |  |       supVo.short_busyTimeout = 60 ; | 
 |  |  |       //长工作时长线程池,线程负责用时较长的工作任务 | 
 |  |  |       supVo.long_maxThread = 200 ; | 
 |  |  |       if(supVo.long_maxThread < 0){ | 
 |  |  |          supVo.long_maxThread = -1 ; | 
 |  |  |       } | 
 |  |  |       supVo.long_minThread = 0 ;  | 
 |  |  |       supVo.long_freeTimeout = 60 ; | 
 |  |  |       supVo.long_busyTimeout = -1 ; | 
 |  |  |       if(supVo.long_busyTimeout < 0){ | 
 |  |  |          supVo.long_busyTimeout = -1 ; | 
 |  |  |       } | 
 |  |  | 		 | 
 |  |  |       supVo.enableThreadPool = true ; | 
 |  |  | 		 | 
 |  |  |       supVo.showStartInfo = true ; | 
 |  |  |  | 
 |  |  |       SupportUnit supUnit = SupportUnit.getInstance() ; | 
 |  |  | 		 | 
 |  |  |       AdapterImp_SupportUnit supAdap = new AdapterImp_SupportUnit(); | 
 |  |  |       supAdap.setConfig(supVo); | 
 |  |  |       supUnit.setAdapter(supAdap); | 
 |  |  |       supUnit.start(obj -> { | 
 |  |  |       }); | 
 |  |  |    } | 
 |  |  |    private static class AdapterImp_SupportUnit implements SupportUnitAdapter { | 
 |  |  | 		 | 
 |  |  |       private SupportUnitConfigVo configVo = null ; | 
 |  |  |  | 
 |  |  |       @Override | 
 |  |  |       public SupportUnitConfigVo getConfig() { | 
 |  |  |          return this.configVo; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       public void setConfig(SupportUnitConfigVo configVo) { | 
 |  |  |          this.configVo = configVo; | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |    */ | 
 |  |  | } |