Skip to content

Commit 3542210

Browse files
committed
Remove entity specific reindexing check on scheduled job, check if any reindex is running for tenant
1 parent cf8bb3a commit 3542210

File tree

4 files changed

+18
-20
lines changed

4 files changed

+18
-20
lines changed

src/main/java/org/folio/search/service/reindex/ReindexStatusService.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,13 @@ public boolean isMergeCompleted() {
132132
}
133133

134134
/**
135-
* Checks if a reindex operation for the given entity type is currently in progress or has failed.
135+
* Checks if any reindex operation is currently in progress or has failed.
136136
*
137-
* @param entityType the entity type to check
138-
* @return true if the entity type has a status of MERGE_IN_PROGRESS, UPLOAD_IN_PROGRESS, STAGING_IN_PROGRESS,
137+
* @return true if any entity type has a status of MERGE_IN_PROGRESS, UPLOAD_IN_PROGRESS, STAGING_IN_PROGRESS,
139138
* MERGE_FAILED, STAGING_FAILED or UPLOAD_FAILED
140139
*/
141-
public boolean isReindexInProgressOrFailed(ReindexEntityType entityType) {
140+
public boolean isReindexInProgressOrFailed() {
142141
return statusRepository.getReindexStatuses().stream()
143-
.filter(status -> status.getEntityType() == entityType)
144142
.anyMatch(status -> status.getStatus() == ReindexStatus.MERGE_IN_PROGRESS
145143
|| status.getStatus() == ReindexStatus.UPLOAD_IN_PROGRESS
146144
|| status.getStatus() == ReindexStatus.STAGING_IN_PROGRESS

src/main/java/org/folio/search/service/scheduled/ScheduledInstanceSubResourcesService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ private void processEntityTypeWithLock(ReindexEntityType entityType, String tena
119119
}
120120

121121
private void handleLockAcquisitionFailure(ReindexEntityType entityType, String tenant) {
122-
if (isReindexInProgressOrFailed(entityType)) {
122+
if (isReindexInProgressOrFailed()) {
123123
log.info(
124124
"persistChildren::Skipping stale lock check for entity type {} in tenant {} - reindex is in progress or failed",
125125
entityType, tenant);
@@ -133,9 +133,9 @@ private void handleLockAcquisitionFailure(ReindexEntityType entityType, String t
133133
}
134134
}
135135

136-
private boolean isReindexInProgressOrFailed(ReindexEntityType entityType) {
136+
private boolean isReindexInProgressOrFailed() {
137137
try {
138-
return reindexStatusService.isReindexInProgressOrFailed(entityType);
138+
return reindexStatusService.isReindexInProgressOrFailed();
139139
} catch (Exception e) {
140140
log.warn("persistChildren::Failed to check reindex status, assuming no reindex in progress or failed", e);
141141
return false;

src/test/java/org/folio/search/service/reindex/ReindexStatusServiceTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -373,37 +373,37 @@ void isReindexInProgressOrFailed_true(ReindexStatus status) {
373373
new ReindexStatusEntity(ReindexEntityType.HOLDINGS, ReindexStatus.MERGE_COMPLETED)));
374374

375375
// act
376-
var actual = service.isReindexInProgressOrFailed(ReindexEntityType.INSTANCE);
376+
var actual = service.isReindexInProgressOrFailed();
377377

378378
// assert
379379
assertThat(actual).isTrue();
380380
}
381381

382382
@Test
383-
void isReindexInProgressOrFailed_false_whenEntityTypeHasCompletedStatus() {
383+
void isReindexInProgressOrFailed_false_whenAllEntityTypesHaveCompletedStatus() {
384384
// given
385385
when(statusRepository.getReindexStatuses()).thenReturn(List.of(
386386
new ReindexStatusEntity(ReindexEntityType.INSTANCE, ReindexStatus.UPLOAD_COMPLETED),
387387
new ReindexStatusEntity(ReindexEntityType.HOLDINGS, ReindexStatus.MERGE_COMPLETED)));
388388

389389
// act
390-
var actual = service.isReindexInProgressOrFailed(ReindexEntityType.INSTANCE);
390+
var actual = service.isReindexInProgressOrFailed();
391391

392392
// assert
393393
assertThat(actual).isFalse();
394394
}
395395

396396
@Test
397-
void isReindexInProgressOrFailed_false_whenDifferentEntityTypeIsInProgress() {
397+
void isReindexInProgressOrFailed_true_whenAnyEntityTypeIsInProgress() {
398398
// given
399399
when(statusRepository.getReindexStatuses()).thenReturn(List.of(
400400
new ReindexStatusEntity(ReindexEntityType.INSTANCE, ReindexStatus.MERGE_IN_PROGRESS),
401401
new ReindexStatusEntity(ReindexEntityType.HOLDINGS, ReindexStatus.MERGE_COMPLETED)));
402402

403403
// act
404-
var actual = service.isReindexInProgressOrFailed(ReindexEntityType.HOLDINGS);
404+
var actual = service.isReindexInProgressOrFailed();
405405

406406
// assert
407-
assertThat(actual).isFalse();
407+
assertThat(actual).isTrue();
408408
}
409409
}

src/test/java/org/folio/search/service/scheduled/ScheduledInstanceSubResourcesServiceTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,15 +182,15 @@ void persistChildren_ShouldReleaseStaleLockWhenLockAcquisitionFails() {
182182
.when(executionService).executeSystemUserScoped(anyString(), any());
183183
when(tenantRepository.fetchDataTenantIds()).thenReturn(List.of(TENANT_ID));
184184
when(subResourcesLockRepository.lockSubResource(any(), eq(TENANT_ID))).thenReturn(Optional.empty());
185-
when(reindexStatusService.isReindexInProgressOrFailed(any())).thenReturn(false);
185+
when(reindexStatusService.isReindexInProgressOrFailed()).thenReturn(false);
186186
when(subResourcesLockRepository.checkAndReleaseStaleLock(any(), eq(TENANT_ID), anyLong())).thenReturn(true);
187187

188188
// Act
189189
service.persistChildren();
190190

191191
// Assert
192192
verify(subResourcesLockRepository, times(3)).lockSubResource(any(), eq(TENANT_ID));
193-
verify(reindexStatusService, times(3)).isReindexInProgressOrFailed(any());
193+
verify(reindexStatusService, times(3)).isReindexInProgressOrFailed();
194194
verify(subResourcesLockRepository, times(3)).checkAndReleaseStaleLock(any(), eq(TENANT_ID), anyLong());
195195
verify(subResourcesLockRepository, never()).unlockSubResource(any(), any(), any());
196196
verify(subjectRepository, never()).fetchByTimestamp(anyString(), any(), anyInt());
@@ -204,15 +204,15 @@ void persistChildren_ShouldNotProcessWhenLockFailsAndNoStaleLock() {
204204
.when(executionService).executeSystemUserScoped(anyString(), any());
205205
when(tenantRepository.fetchDataTenantIds()).thenReturn(List.of(TENANT_ID));
206206
when(subResourcesLockRepository.lockSubResource(any(), eq(TENANT_ID))).thenReturn(Optional.empty());
207-
when(reindexStatusService.isReindexInProgressOrFailed(any())).thenReturn(false);
207+
when(reindexStatusService.isReindexInProgressOrFailed()).thenReturn(false);
208208
when(subResourcesLockRepository.checkAndReleaseStaleLock(any(), eq(TENANT_ID), anyLong())).thenReturn(false);
209209

210210
// Act
211211
service.persistChildren();
212212

213213
// Assert
214214
verify(subResourcesLockRepository, times(3)).lockSubResource(any(), eq(TENANT_ID));
215-
verify(reindexStatusService, times(3)).isReindexInProgressOrFailed(any());
215+
verify(reindexStatusService, times(3)).isReindexInProgressOrFailed();
216216
verify(subResourcesLockRepository, times(3)).checkAndReleaseStaleLock(any(), eq(TENANT_ID), anyLong());
217217
verify(subResourcesLockRepository, never()).unlockSubResource(any(), any(), any());
218218
verify(subjectRepository, never()).fetchByTimestamp(anyString(), any(), anyInt());
@@ -226,14 +226,14 @@ void persistChildren_ShouldSkipStaleLockCheckWhenReindexInProgress() {
226226
.when(executionService).executeSystemUserScoped(anyString(), any());
227227
when(tenantRepository.fetchDataTenantIds()).thenReturn(List.of(TENANT_ID));
228228
when(subResourcesLockRepository.lockSubResource(any(), eq(TENANT_ID))).thenReturn(Optional.empty());
229-
when(reindexStatusService.isReindexInProgressOrFailed(any())).thenReturn(true);
229+
when(reindexStatusService.isReindexInProgressOrFailed()).thenReturn(true);
230230

231231
// Act
232232
service.persistChildren();
233233

234234
// Assert
235235
verify(subResourcesLockRepository, times(3)).lockSubResource(any(), eq(TENANT_ID));
236-
verify(reindexStatusService, times(3)).isReindexInProgressOrFailed(any());
236+
verify(reindexStatusService, times(3)).isReindexInProgressOrFailed();
237237
verify(subResourcesLockRepository, never()).checkAndReleaseStaleLock(any(), any(), anyLong());
238238
verify(subResourcesLockRepository, never()).unlockSubResource(any(), any(), any());
239239
verify(subjectRepository, never()).fetchByTimestamp(anyString(), any(), anyInt());

0 commit comments

Comments
 (0)