From 6e7fce1fe254a3bf5885b61d1a589966dea221ea Mon Sep 17 00:00:00 2001 From: akulikov Date: Tue, 6 Aug 2024 19:25:36 +0300 Subject: [PATCH] reports-service: http://jira.mfd.msk:8088/browse/CLS-711 (fix init) --- .../reports/config/ClearingImdgConfig.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ClearingImdgConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ClearingImdgConfig.java index 51c3d943d..742130b85 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ClearingImdgConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ClearingImdgConfig.java @@ -14,6 +14,26 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; @Configuration public class ClearingImdgConfig { + private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) { + ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor(); + if (maxPoolSz > 2) { + pool.setKeepAliveSeconds(60); + pool.setAllowCoreThreadTimeOut(true); + } + pool.setCorePoolSize(maxPoolSz); + pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion); + pool.initialize(); + return pool; + } + + public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() { + return createThreadPoolTaskExecutor(1, true); + } + + public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() { + return createThreadPoolTaskExecutor(1, false); + } + @Bean public ImdgProvider imdgProvider(ReportsServiceSettings settings, Environment env) throws PropertyVetoException { String[] activeProfiles = env.getActiveProfiles(); @@ -25,12 +45,8 @@ public class ClearingImdgConfig { } } if (!isDevProfile) { - ThreadPoolTaskExecutor hazelcastClientInitializerPool = new ThreadPoolTaskExecutor(); - hazelcastClientInitializerPool.setCorePoolSize(1); - hazelcastClientInitializerPool.setWaitForTasksToCompleteOnShutdown(true); - ThreadPoolTaskExecutor idGeneratorAwaiterPool = new ThreadPoolTaskExecutor(); - idGeneratorAwaiterPool.setCorePoolSize(1); - idGeneratorAwaiterPool.setWaitForTasksToCompleteOnShutdown(false); + ThreadPoolTaskExecutor hazelcastClientInitializerPool = taskExecutorHazelcastClientInitializer(); + ThreadPoolTaskExecutor idGeneratorAwaiterPool = taskExecutorIdGeneratorAwaiter(); return new HazelcastService(hazelcastClientInitializerPool, idGeneratorAwaiterPool, settings.getHazelcast()); } else { ComboPooledDataSource dataSource = new ComboPooledDataSource();