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; |
| | | } |
| | | } |
| | | */ |
| | | } |