Avoid running full "update tasks" unless they're absolutely needed. Process Vault API "set" requests immediately instead of in the background

This commit is contained in:
Luck
2018-09-04 21:02:40 +01:00
Unverified
parent f0c0328919
commit 3a123f9fa1
10 changed files with 105 additions and 87 deletions
@@ -451,7 +451,9 @@ public class HolderSubjectData implements LPSubjectData {
if (this.type == NodeMapType.TRANSIENT) {
// don't bother saving to primary storage. just refresh
if (t.getType().isGroup()) {
return this.service.getPlugin().getUpdateTaskBuffer().request();
this.service.getPlugin().getGroupManager().invalidateAllGroupCaches();
this.service.getPlugin().getUserManager().invalidateAllUserCaches();
return CompletableFuture.completedFuture(null);
}
}
@@ -461,8 +463,9 @@ public class HolderSubjectData implements LPSubjectData {
return this.service.getPlugin().getStorage().saveUser(user);
} else {
Group group = ((Group) t);
return this.service.getPlugin().getStorage().saveGroup(group)
.thenCompose(v -> this.service.getPlugin().getUpdateTaskBuffer().request());
this.service.getPlugin().getGroupManager().invalidateAllGroupCaches();
this.service.getPlugin().getUserManager().invalidateAllUserCaches();
return this.service.getPlugin().getStorage().saveGroup(group);
}
}
}