From baf36bc2ea5033bf8f1ea1984ff83bbb8067b960 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 22 Apr 2024 18:12:20 +0300 Subject: [PATCH] Refactor CleanUpService --- .../dao/housekeeper/CleanUpService.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/housekeeper/CleanUpService.java b/dao/src/main/java/org/thingsboard/server/dao/housekeeper/CleanUpService.java index 082a60f44a..d64e6ea536 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/housekeeper/CleanUpService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/housekeeper/CleanUpService.java @@ -31,6 +31,7 @@ import org.thingsboard.server.dao.eventsourcing.DeleteEntityEvent; import org.thingsboard.server.dao.relation.RelationService; import java.util.EnumSet; +import java.util.Optional; import java.util.Set; @Component @@ -38,7 +39,7 @@ import java.util.Set; @Slf4j public class CleanUpService { - private final HousekeeperClient housekeeperClient; + private final Optional housekeeperClient; private final RelationService relationService; private final Set skippedEntities = EnumSet.of( @@ -59,7 +60,7 @@ public class CleanUpService { cleanUpRelatedData(tenantId, entityId); } if (entityType == EntityType.USER) { - housekeeperClient.submitTask(HousekeeperTask.unassignAlarms((User) event.getEntity())); + submitTask(HousekeeperTask.unassignAlarms((User) event.getEntity())); } } catch (Throwable e) { log.error("[{}][{}][{}] Failed to handle entity deletion event", tenantId, entityType, entityId.getId(), e); @@ -69,16 +70,22 @@ public class CleanUpService { public void cleanUpRelatedData(TenantId tenantId, EntityId entityId) { log.debug("[{}][{}][{}] Cleaning up related data", tenantId, entityId.getEntityType(), entityId.getId()); relationService.deleteEntityRelations(tenantId, entityId); - housekeeperClient.submitTask(HousekeeperTask.deleteAttributes(tenantId, entityId)); - housekeeperClient.submitTask(HousekeeperTask.deleteTelemetry(tenantId, entityId)); - housekeeperClient.submitTask(HousekeeperTask.deleteEvents(tenantId, entityId)); - housekeeperClient.submitTask(HousekeeperTask.deleteAlarms(tenantId, entityId)); + submitTask(HousekeeperTask.deleteAttributes(tenantId, entityId)); + submitTask(HousekeeperTask.deleteTelemetry(tenantId, entityId)); + submitTask(HousekeeperTask.deleteEvents(tenantId, entityId)); + submitTask(HousekeeperTask.deleteAlarms(tenantId, entityId)); } public void removeTenantEntities(TenantId tenantId, EntityType... entityTypes) { for (EntityType entityType : entityTypes) { - housekeeperClient.submitTask(HousekeeperTask.deleteTenantEntities(tenantId, entityType)); + submitTask(HousekeeperTask.deleteTenantEntities(tenantId, entityType)); } } + private void submitTask(HousekeeperTask task) { + housekeeperClient.ifPresent(housekeeperClient -> { + housekeeperClient.submitTask(task); + }); + } + }