Skip to content

Commit 7331194

Browse files
committed
Modification flush: use the same thread as for apply (bounded thread pool for large modifications)
1 parent 802cda8 commit 7331194

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/main/java/org/gridsuite/modification/server/modifications/NetworkModificationApplicator.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,18 @@ public NetworkModificationResult applyModifications(ModificationApplicationGroup
106106
.orElse(PreloadingStrategy.NONE);
107107

108108
NetworkStoreListener listener = NetworkStoreListener.create(networkInfos.getNetwork(), networkInfos.getNetworkUuuid(), networkStoreService, equipmentInfosService, applicationInfosService, collectionThreshold);
109-
ApplicationStatus groupApplicationStatus;
110109
if (preloadingStrategy == PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW) {
111-
groupApplicationStatus = largeNetworkModificationExecutionService
112-
.supplyAsync(() -> apply(modificationInfosGroup, listener))
110+
return largeNetworkModificationExecutionService
111+
.supplyAsync(() -> applyAndFlush(modificationInfosGroup, listener))
113112
.join();
114113
} else {
115-
groupApplicationStatus = apply(modificationInfosGroup, listener);
114+
return applyAndFlush(modificationInfosGroup, listener);
116115
}
116+
}
117117

118+
private NetworkModificationResult applyAndFlush(ModificationApplicationGroup modificationInfosGroup,
119+
NetworkStoreListener listener) {
120+
ApplicationStatus groupApplicationStatus = apply(modificationInfosGroup, listener);
118121
return flushModificationApplications(groupApplicationStatus, listener);
119122
}
120123

@@ -147,15 +150,18 @@ public NetworkModificationResult applyModifications(List<ModificationApplication
147150
.orElse(PreloadingStrategy.NONE);
148151

149152
NetworkStoreListener listener = NetworkStoreListener.create(networkInfos.getNetwork(), networkInfos.getNetworkUuuid(), networkStoreService, equipmentInfosService, applicationInfosService, collectionThreshold);
150-
List<ApplicationStatus> groupsApplicationStatuses;
151153
if (preloadingStrategy == PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW) {
152-
groupsApplicationStatuses = largeNetworkModificationExecutionService
153-
.supplyAsync(() -> apply(modificationInfosGroups, listener))
154+
return largeNetworkModificationExecutionService
155+
.supplyAsync(() -> applyAndFlush(modificationInfosGroups, listener))
154156
.join();
155157
} else {
156-
groupsApplicationStatuses = apply(modificationInfosGroups, listener);
158+
return applyAndFlush(modificationInfosGroups, listener);
157159
}
160+
}
158161

162+
private NetworkModificationResult applyAndFlush(List<ModificationApplicationGroup> modificationInfosGroups,
163+
NetworkStoreListener listener) {
164+
List<ApplicationStatus> groupsApplicationStatuses = apply(modificationInfosGroups, listener);
159165
return flushModificationApplications(groupsApplicationStatuses, listener);
160166
}
161167

0 commit comments

Comments
 (0)