Browse Source

Fixed event order. Clear cache events must arrive first.

pull/10713/head
Andrii Shvaika 2 years ago
parent
commit
e844655235
  1. 4
      application/src/main/java/org/thingsboard/server/actors/ruleChain/RuleChainActorMessageProcessor.java
  2. 1
      dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java
  3. 2
      dao/src/main/java/org/thingsboard/server/dao/relation/EntityRelationEvent.java
  4. 5
      dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java

4
application/src/main/java/org/thingsboard/server/actors/ruleChain/RuleChainActorMessageProcessor.java

@ -103,7 +103,7 @@ public class RuleChainActorMessageProcessor extends ComponentMsgProcessor<RuleCh
RuleChain ruleChain = service.findRuleChainById(tenantId, entityId);
if (ruleChain != null && RuleChainType.CORE.equals(ruleChain.getType())) {
List<RuleNode> ruleNodeList = service.getRuleChainNodes(tenantId, entityId);
log.trace("[{}][{}] Starting rule chain with {} nodes", tenantId, entityId, ruleNodeList.size());
log.debug("[{}][{}] Starting rule chain with {} nodes", tenantId, entityId, ruleNodeList.size());
// Creating and starting the actors;
for (RuleNode ruleNode : ruleNodeList) {
log.trace("[{}][{}] Creating rule node [{}]: {}", entityId, ruleNode.getId(), ruleNode.getName(), ruleNode);
@ -124,7 +124,7 @@ public class RuleChainActorMessageProcessor extends ComponentMsgProcessor<RuleCh
if (ruleChain != null && RuleChainType.CORE.equals(ruleChain.getType())) {
ruleChainName = ruleChain.getName();
List<RuleNode> ruleNodeList = service.getRuleChainNodes(tenantId, entityId);
log.trace("[{}][{}] Updating rule chain with {} nodes", tenantId, entityId, ruleNodeList.size());
log.debug("[{}][{}] Updating rule chain with {} nodes", tenantId, entityId, ruleNodeList.size());
for (RuleNode ruleNode : ruleNodeList) {
RuleNodeCtx existing = nodeActors.get(ruleNode.getId());
if (existing == null) {

1
dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationService.java

@ -121,6 +121,7 @@ public class BaseRelationService implements RelationService {
keys.add(new RelationCacheKey(null, event.getTo(), event.getType(), event.getTypeGroup(), EntitySearchDirection.TO));
keys.add(new RelationCacheKey(null, event.getTo(), null, event.getTypeGroup(), EntitySearchDirection.TO));
cache.evict(keys);
log.debug("Processed evict event: {}", event);
}
@Override

2
dao/src/main/java/org/thingsboard/server/dao/relation/EntityRelationEvent.java

@ -17,11 +17,13 @@ package org.thingsboard.server.dao.relation;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
@RequiredArgsConstructor
@ToString
public class EntityRelationEvent {
@Getter
private final EntityId from;

5
dao/src/main/java/org/thingsboard/server/dao/tenant/TenantServiceImpl.java

@ -135,8 +135,6 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
Tenant savedTenant = tenantDao.save(tenant.getId(), tenant);
TenantId tenantId = savedTenant.getId();
publishEvictEvent(new TenantEvictEvent(tenantId, create));
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(tenantId)
.entityId(tenantId).entity(savedTenant).created(create).build());
if (create) {
deviceProfileService.createDefaultDeviceProfile(tenantId);
@ -147,6 +145,9 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
defaultEntitiesCreator.accept(tenantId);
}
}
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(tenantId)
.entityId(tenantId).entity(savedTenant).created(create).build());
return savedTenant;
}

Loading…
Cancel
Save