Skip to content

Commit b89b054

Browse files
authored
Use one transaction for inserting status and results. (#80)
1 parent 16b216a commit b89b054

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/main/java/org/gridsuite/securityanalysis/server/repositories/SecurityAnalysisResultRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public SecurityAnalysisResult find(UUID resultUuid, Set<LimitViolationType> limi
154154
}
155155

156156
@Transactional
157-
public void insert(UUID resultUuid, SecurityAnalysisResult result) {
157+
public void insert(UUID resultUuid, SecurityAnalysisResult result, SecurityAnalysisStatus status) {
158158
Objects.requireNonNull(resultUuid);
159159
Objects.requireNonNull(result);
160160

@@ -169,6 +169,7 @@ public void insert(UUID resultUuid, SecurityAnalysisResult result) {
169169
);
170170
computationStatusRepository.save(toEntity(resultUuid, null, result.getPreContingencyResult().getStatus().name()));
171171
limitViolationRepository.saveAll(toEntity(resultUuid, null, result.getPreContingencyResult().getLimitViolationsResult().getLimitViolations()));
172+
globalStatusRepository.save(toEntity(resultUuid, status));
172173
}
173174

174175
public void insertStatus(List<UUID> resultUuids, SecurityAnalysisStatus status) {

src/main/java/org/gridsuite/securityanalysis/server/service/SecurityAnalysisWorkerService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,9 @@ public Consumer<Message<String>> consumeRun() {
258258
.flatMap(result -> {
259259
long nanoTime = System.nanoTime();
260260
LOGGER.info("Just run in {}s", TimeUnit.NANOSECONDS.toSeconds(nanoTime - startTime.getAndSet(nanoTime)));
261-
return Mono.fromRunnable(() -> resultRepository.insert(resultContext.getResultUuid(), result))
262-
.then(Mono.fromRunnable(() -> resultRepository.insertStatus(List.of(resultContext.getResultUuid()),
263-
result.getPreContingencyResult().getStatus() == LoadFlowResult.ComponentResult.Status.CONVERGED ? SecurityAnalysisStatus.CONVERGED : SecurityAnalysisStatus.DIVERGED)))
261+
return Mono.fromRunnable(() -> resultRepository.insert(resultContext.getResultUuid(),
262+
result,
263+
result.getPreContingencyResult().getStatus() == LoadFlowResult.ComponentResult.Status.CONVERGED ? SecurityAnalysisStatus.CONVERGED : SecurityAnalysisStatus.DIVERGED))
264264
.then(Mono.just(result))
265265
.doFinally(ignored -> {
266266
long finalNanoTime = System.nanoTime();

0 commit comments

Comments
 (0)