diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java index a1df6934e..1204c835c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java @@ -47,6 +47,7 @@ public class ClearingService implements DisposableBean { @Override public void destroy() throws Exception { + log.debug("Shutdown {}", getClass().getSimpleName()); executor.shutdown(); } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java index 09df1cc26..4a23d7045 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java @@ -23,8 +23,6 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import java.math.BigDecimal; import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.function.Function; import java.util.stream.Collectors; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java index e55d066a8..53a6dd15a 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java @@ -83,16 +83,20 @@ public abstract class AbstractHazelcastLifecycleSupport implements InitializingB return maxKey; }); } + long maxKey = 0L; int threadCount = Runtime.getRuntime().availableProcessors();// todo config * Config.get().getRoot().getSettings().getInitHazelcastThreadMultiplier(); log.info("Initializing threads count = {}", threadCount); ExecutorService executor = Executors.newWorkStealingPool(threadCount); - List> results = executor.invokeAll(tasks); - long maxKey = 0L; - for (Future result : results) { - Long maxKeyResult = result.get(); - if (maxKeyResult != null) { - maxKey = Math.max(maxKey, maxKeyResult); + try { + List> results = executor.invokeAll(tasks); + for (Future result : results) { + Long maxKeyResult = result.get(); + if (maxKeyResult != null) { + maxKey = Math.max(maxKey, maxKeyResult); + } } + } finally { + executor.shutdown(); } IdGenerator generator = hazelcastServerInstance.getIdGenerator(IMDGDistributedNames.MAP_SEQUENCE_NAME); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java index 1ecdd1625..2730b70a5 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java @@ -157,8 +157,11 @@ public class QueueConsumer implements AutoCloseable { @Override public void close() { + log.debug("Closing queue consumer {}", getClass().getSimpleName()); closed.set(true); consumer.wakeup(); + inputExecutor.shutdown(); + outputExecutor.shutdown(); }