Avoid re-initializing CFs for entities on scheduling config changes
This commit is contained in:
parent
eb36297b69
commit
8a92f22215
@ -310,6 +310,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
|
||||
// Alternative approach would be to use any list but avoid modifications to the list (change the complete map value instead)
|
||||
entityIdCalculatedFields.computeIfAbsent(cf.getEntityId(), id -> new CopyOnWriteArrayList<>()).add(cfCtx);
|
||||
addLinks(cf);
|
||||
scheduleDynamicArgumentsRefreshTaskForCfIfNeeded(cfCtx);
|
||||
initCf(cfCtx, callback, false);
|
||||
}
|
||||
}
|
||||
@ -342,6 +343,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
|
||||
boolean hasSchedulingConfigChanges = newCfCtx.hasSchedulingConfigChanges(oldCfCtx);
|
||||
if (hasSchedulingConfigChanges) {
|
||||
cancelCfDynamicArgumentsRefreshTaskIfExists(cfId, false);
|
||||
scheduleDynamicArgumentsRefreshTaskForCfIfNeeded(newCfCtx);
|
||||
}
|
||||
|
||||
List<CalculatedFieldCtx> newCfList = new CopyOnWriteArrayList<>();
|
||||
@ -365,7 +367,7 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
|
||||
// We use copy on write lists to safely pass the reference to another actor for the iteration.
|
||||
// Alternative approach would be to use any list but avoid modifications to the list (change the complete map value instead)
|
||||
var stateChanges = newCfCtx.hasStateChanges(oldCfCtx);
|
||||
if (stateChanges || newCfCtx.hasOtherSignificantChanges(oldCfCtx) || hasSchedulingConfigChanges) {
|
||||
if (stateChanges || newCfCtx.hasOtherSignificantChanges(oldCfCtx)) {
|
||||
initCf(newCfCtx, callback, stateChanges);
|
||||
} else {
|
||||
callback.onSuccess();
|
||||
@ -476,7 +478,6 @@ public class CalculatedFieldManagerMessageProcessor extends AbstractContextAware
|
||||
}
|
||||
|
||||
private void initCf(CalculatedFieldCtx cfCtx, TbCallback callback, boolean forceStateReinit) {
|
||||
scheduleDynamicArgumentsRefreshTaskForCfIfNeeded(cfCtx);
|
||||
applyToTargetCfEntityActors(cfCtx, callback, (id, cb) -> initCfForEntity(id, cfCtx, forceStateReinit, cb));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user