Browse Source

renamed tenant profile property and removed reevaluation interval from system params

pull/14474/head
IrynaMatveieva 8 months ago
parent
commit
87e458f29b
  1. 4
      application/src/main/data/upgrade/basic/schema_update.sql
  2. 13
      application/src/main/java/org/thingsboard/server/actors/calculatedField/CalculatedFieldManagerMessageProcessor.java
  3. 4
      application/src/main/java/org/thingsboard/server/controller/SystemInfoController.java
  4. 2
      application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java
  5. 2
      application/src/main/java/org/thingsboard/server/service/cf/DefaultCalculatedFieldCache.java
  6. 11
      application/src/main/java/org/thingsboard/server/service/cf/ctx/state/CalculatedFieldCtx.java
  7. 3
      application/src/main/java/org/thingsboard/server/service/cf/ctx/state/aggregation/single/EntityAggregationCalculatedFieldState.java
  8. 4
      common/data/src/main/java/org/thingsboard/server/common/data/SystemParams.java
  9. 2
      common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java

4
application/src/main/data/upgrade/basic/schema_update.sql

@ -26,7 +26,7 @@ SET profile_data = jsonb_set(
'maxRelatedEntitiesToReturnPerCfArgument', 100,
'minAllowedDeduplicationIntervalInSecForCF', 10,
'minAllowedAggregationIntervalInSecForCF', 60,
'minAllowedIntermediateAggregationIntervalInSecForCF', 300,
'intermediateAggregationIntervalInSecForCF', 300,
'cfReevaluationCheckInterval', 60,
'alarmsReevaluationInterval', 60
)
@ -40,7 +40,7 @@ WHERE NOT (
'maxRelatedEntitiesToReturnPerCfArgument',
'minAllowedDeduplicationIntervalInSecForCF',
'minAllowedAggregationIntervalInSecForCF',
'minAllowedIntermediateAggregationIntervalInSecForCF',
'intermediateAggregationIntervalInSecForCF',
'cfReevaluationCheckInterval',
'alarmsReevaluationInterval'
]

13
application/src/main/java/org/thingsboard/server/actors/calculatedField/CalculatedFieldManagerMessageProcessor.java

@ -116,6 +116,8 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
private final TbQueueCalculatedFieldSettings cfSettings;
protected final TenantId tenantId;
private long cfCheckInterval;
protected TbActorCtx ctx;
CalculatedFieldManagerMessageProcessor(ActorSystemContext systemContext, TenantId tenantId) {
@ -153,6 +155,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
log.debug("[{}] Processing CF actor init message.", msg.getTenantId().getId());
initEntitiesCache();
initCalculatedFields();
cfCheckInterval = systemContext.getApiLimitService().getLimit(tenantId, DefaultTenantProfileConfiguration::getCfReevaluationCheckInterval);
scheduleCfsReevaluation();
msg.getCallback().onSuccess();
}
@ -175,7 +178,6 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
}
private void scheduleCfsReevaluation() {
long cfCheckInterval = systemContext.getApiLimitService().getLimit(tenantId, DefaultTenantProfileConfiguration::getCfReevaluationCheckInterval);
cfsReevaluationTask = systemContext.getScheduler().scheduleWithFixedDelay(() -> {
try {
calculatedFields.values().forEach(cf -> {
@ -256,12 +258,15 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
}
private void onTenantProfileUpdated(ComponentLifecycleMsg msg, TbCallback callback) {
cancelReevaluationTask();
scheduleCfsReevaluation();
long updatedCfCheckInterval = systemContext.getApiLimitService().getLimit(tenantId, DefaultTenantProfileConfiguration::getCfReevaluationCheckInterval);
if (cfCheckInterval != updatedCfCheckInterval) {
cancelReevaluationTask();
scheduleCfsReevaluation();
}
Stream.concat(
calculatedFields.values().stream(),
entityIdCalculatedFields.values().stream().flatMap(Collection::stream)
).forEach(CalculatedFieldCtx::updateTenantProfileProperties);
).forEach(CalculatedFieldCtx::setTenantProfileProperties);
callback.onSuccess();
}

4
application/src/main/java/org/thingsboard/server/controller/SystemInfoController.java

@ -166,9 +166,7 @@ public class SystemInfoController extends BaseController {
systemParams.setMaxRelationLevelPerCfArgument(tenantProfileConfiguration.getMaxRelationLevelPerCfArgument());
systemParams.setMinAllowedDeduplicationIntervalInSecForCF(tenantProfileConfiguration.getMinAllowedDeduplicationIntervalInSecForCF());
systemParams.setMinAllowedAggregationIntervalInSecForCF(tenantProfileConfiguration.getMinAllowedAggregationIntervalInSecForCF());
systemParams.setMinAllowedIntermediateAggregationIntervalInSecForCF(tenantProfileConfiguration.getMinAllowedIntermediateAggregationIntervalInSecForCF());
systemParams.setCfReevaluationCheckInterval(tenantProfileConfiguration.getCfReevaluationCheckInterval());
systemParams.setAlarmsReevaluationInterval(tenantProfileConfiguration.getAlarmsReevaluationInterval());
systemParams.setIntermediateAggregationIntervalInSecForCF(tenantProfileConfiguration.getIntermediateAggregationIntervalInSecForCF());
systemParams.setTrendzSettings(trendzSettingsService.findTrendzSettings(currentUser.getTenantId()));
}
systemParams.setMobileQrEnabled(Optional.ofNullable(qrCodeSettingService.findQrCodeSettings(TenantId.SYS_TENANT_ID))

2
application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java

@ -169,7 +169,7 @@ public class TenantProfileController extends BaseController {
" \"maxSingleValueArgumentSizeInKBytes\": 2," +
" \"minAllowedDeduplicationIntervalInSecForCF\": 10," +
" \"minAllowedAggregationIntervalInSecForCF\": 60," +
" \"minAllowedIntermediateAggregationIntervalInSecForCF\": 300," +
" \"intermediateAggregationIntervalInSecForCF\": 300," +
" \"cfReevaluationCheckInterval\": 60," +
" \"alarmsReevaluationInterval\": 60" +
" }\n" +

2
application/src/main/java/org/thingsboard/server/service/cf/DefaultCalculatedFieldCache.java

@ -239,7 +239,7 @@ public class DefaultCalculatedFieldCache implements CalculatedFieldCache {
TenantProfile tenantProfile = tenantProfileCache.get(ctx.getTenantId());
return tenantProfile != null && tenantProfileId.equals(tenantProfile.getId());
})
.forEach(CalculatedFieldCtx::updateTenantProfileProperties);
.forEach(CalculatedFieldCtx::setTenantProfileProperties);
}
@Override

11
application/src/main/java/org/thingsboard/server/service/cf/ctx/state/CalculatedFieldCtx.java

@ -212,12 +212,7 @@ public class CalculatedFieldCtx implements Closeable {
this.alarmService = systemContext.getAlarmService();
this.cfProcessingService = systemContext.getCalculatedFieldProcessingService();
ApiLimitService apiLimitService = systemContext.getApiLimitService();
this.maxStateSize = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getMaxStateSizeInKBytes) * 1024;
this.maxSingleValueArgumentSize = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getMaxSingleValueArgumentSizeInKBytes) * 1024;
this.intermediateAggregationIntervalMillis = TimeUnit.SECONDS.toMillis(apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getMinAllowedIntermediateAggregationIntervalInSecForCF));
this.cfCheckReevaluationInterval = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getCfReevaluationCheckInterval);
this.alarmReevaluationInterval = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getAlarmsReevaluationInterval);
setTenantProfileProperties();
}
public boolean requiresScheduledReevaluation() {
@ -302,11 +297,11 @@ public class CalculatedFieldCtx implements Closeable {
}
}
public void updateTenantProfileProperties() {
public void setTenantProfileProperties() {
ApiLimitService apiLimitService = systemContext.getApiLimitService();
this.maxStateSize = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getMaxStateSizeInKBytes) * 1024;
this.maxSingleValueArgumentSize = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getMaxSingleValueArgumentSizeInKBytes) * 1024;
this.intermediateAggregationIntervalMillis = TimeUnit.SECONDS.toMillis(apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getMinAllowedIntermediateAggregationIntervalInSecForCF));
this.intermediateAggregationIntervalMillis = TimeUnit.SECONDS.toMillis(apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getIntermediateAggregationIntervalInSecForCF));
this.cfCheckReevaluationInterval = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getCfReevaluationCheckInterval);
this.alarmReevaluationInterval = apiLimitService.getLimit(tenantId, DefaultTenantProfileConfiguration::getAlarmsReevaluationInterval);
}

3
application/src/main/java/org/thingsboard/server/service/cf/ctx/state/aggregation/single/EntityAggregationCalculatedFieldState.java

@ -114,7 +114,7 @@ public class EntityAggregationCalculatedFieldState extends BaseCalculatedFieldSt
Map<AggIntervalEntry, Map<String, ArgumentEntry>> results = new HashMap<>();
List<AggIntervalEntry> expiredIntervals = new ArrayList<>();
getIntervals().forEach((intervalEntry, argIntervalStatuses) -> {
processInterval(now, ctx, intervalEntry, argIntervalStatuses, expiredIntervals, results);
processInterval(now, intervalEntry, argIntervalStatuses, expiredIntervals, results);
});
removeExpiredIntervals(expiredIntervals);
@ -194,7 +194,6 @@ public class EntityAggregationCalculatedFieldState extends BaseCalculatedFieldSt
}
private void processInterval(long now,
CalculatedFieldCtx ctx,
AggIntervalEntry intervalEntry,
Map<String, AggIntervalEntryStatus> args,
List<AggIntervalEntry> expiredIntervals,

4
common/data/src/main/java/org/thingsboard/server/common/data/SystemParams.java

@ -42,8 +42,6 @@ public class SystemParams {
int maxRelationLevelPerCfArgument;
long minAllowedDeduplicationIntervalInSecForCF;
long minAllowedAggregationIntervalInSecForCF;
long minAllowedIntermediateAggregationIntervalInSecForCF;
long cfReevaluationCheckInterval;
long alarmsReevaluationInterval;
long intermediateAggregationIntervalInSecForCF;
TrendzSettings trendzSettings;
}

2
common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java

@ -195,7 +195,7 @@ public class DefaultTenantProfileConfiguration implements TenantProfileConfigura
@Schema(example = "60")
private long minAllowedAggregationIntervalInSecForCF = 60;
@Schema(example = "300")
private long minAllowedIntermediateAggregationIntervalInSecForCF = 300;
private long intermediateAggregationIntervalInSecForCF = 300;
@Schema(example = "60")
private long cfReevaluationCheckInterval = 60;
@Schema(example = "60")

Loading…
Cancel
Save