--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/AfstandAndenRuteTask.java 2016/07/27 15:25:24 3073 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/AfstandAndenRuteTask.java 2016/07/28 11:37:37 3074 @@ -45,7 +45,8 @@ ExecutorService threadPool; - boolean isIncremental; + final boolean isIncremental; + final int max_workers; public AfstandAndenRuteTask(String distributor, String type) { @@ -62,6 +63,21 @@ default: throw new RuntimeException("Unknown type" + type); } + + int tmp_max_workers = ServiceConfig.getInstance().maxWorkers; + if (tmp_max_workers <= 0) { + logger.info("!!! AUTO-DETECT MAX_WORKERS !!!"); + int cores = Runtime.getRuntime().availableProcessors(); + cores -= 1;//Efterlad 1 core/cpu i reserve til systemet + + tmp_max_workers = Math.max(1, cores); //Dog skal der som minimum være 1 core til beregning + + } + if (test_mode) { + tmp_max_workers = 1; + } + + max_workers = tmp_max_workers; } @@ -72,18 +88,7 @@ Constants.init(distributor); Constants consts = Constants.getInstance(); - int max_workers = ServiceConfig.getInstance().maxWorkers; - if (max_workers <= 0) { - logger.info("!!! AUTO-DETECT MAX_WORKERS !!!"); - int cores = Runtime.getRuntime().availableProcessors(); - cores -= 1;//Efterlad 1 core/cpu i reserve til systemet - - max_workers = Math.max(1, cores); //Dog skal der som minimum være 1 core til beregning - - } - if (test_mode) { - max_workers = 1; - } + logger.info("Starting with MAX_WORKERS:" + max_workers); threadPool = Executors.newFixedThreadPool(max_workers, new WorkerThreadFactory() ); @@ -106,15 +111,15 @@ logger.info("======================================================================"); - mainRun(consts, isIncremental, "ruteMa", max_workers, antalFundne, antalDaekkedeAdresser); + mainRun(consts, isIncremental, "ruteMa", antalFundne, antalDaekkedeAdresser); logger.info("======================================================================"); - mainRun(consts, true, "ruteLo", max_workers, antalFundne, antalDaekkedeAdresser); + mainRun(consts, true, "ruteLo", antalFundne, antalDaekkedeAdresser); logger.info("======================================================================"); - mainRun(consts, true, "ruteSo", max_workers, antalFundne, antalDaekkedeAdresser); + mainRun(consts, true, "ruteSo", antalFundne, antalDaekkedeAdresser); logger.info("======================================================================"); @@ -141,7 +146,7 @@ } - private void mainRun(Constants consts, boolean localIsIncremental, String ugedag, int max_workers, AtomicInteger antalFundne, AtomicInteger antalDaekkedeAdresser) throws Exception { + private void mainRun(Constants consts, boolean localIsIncremental, String ugedag, AtomicInteger antalFundne, AtomicInteger antalDaekkedeAdresser) throws Exception { logger.info("MainRun() isIncremental=" + localIsIncremental + " ugedag=" + ugedag);