From b74ebc3b0e5453a87957c6870483543506232358 Mon Sep 17 00:00:00 2001 From: ialbert Date: Fri, 2 Aug 2024 17:54:32 +0300 Subject: [PATCH] session InspectionObligationsV2 (step 5) putAll batch size 200 --- .../stage/impl/InspectionObligationsV2.java | 2 +- .../iml/hazelcast/adapter/ImdgHazelcast.java | 17 +++++++++++++++++ .../java/ru/spcex/platform/imdg/api/Imdg.java | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsV2.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsV2.java index 04aec3480..14253e8c8 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsV2.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsV2.java @@ -285,7 +285,7 @@ public class InspectionObligationsV2 implements ISessionStage { } } } - registryImdg.putAll(rgssToStore); + registryImdg.putAll(rgssToStore, 200); planBalanceCalc.stageRevision2(sessionId); diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java index e3bb8dc6f..ffa8bc146 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java @@ -2,6 +2,7 @@ package ru.spcex.platform.imdg.iml.hazelcast.adapter; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -107,6 +108,22 @@ public class ImdgHazelcast implements Imdg { map.putAll(m); } + @Override + public void putAll(Map m, int batchSize) { + if (batchSize <= 0) throw new IllegalArgumentException("illegal batch size " + batchSize); + Map batch = new HashMap<>(batchSize); + for (Map.Entry entry : m.entrySet()) { + batch.put(entry.getKey(), entry.getValue()); + if (batch.size() >= batchSize) { + map.putAll(batch); + batch.clear(); + } + } + if (!batch.isEmpty()) { + map.putAll(batch); + } + } + @Override public void update(T paramT) { map.put(paramT.getId(), paramT); diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java index 8ade11a41..d728806c8 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java @@ -21,6 +21,8 @@ public interface Imdg { default void putAll(Map batch) {throw new UnsupportedOperationException("not implemented update");} + default void putAll(Map batch, int batchSize) {throw new UnsupportedOperationException("not implemented update");} + default void update(T paramT) { throw new UnsupportedOperationException("not implemented update"); }