修复集群下接口可能不同步的BUG
This commit is contained in:
parent
bbc283db47
commit
e8b7d44d47
@ -11,7 +11,7 @@ public class GroupEvent extends MagicEvent {
|
||||
/**
|
||||
* 分组信息
|
||||
*/
|
||||
private final Group group;
|
||||
private Group group;
|
||||
|
||||
/**
|
||||
* 子分组
|
||||
@ -33,6 +33,10 @@ public class GroupEvent extends MagicEvent {
|
||||
return group;
|
||||
}
|
||||
|
||||
public void setGroup(Group group) {
|
||||
this.group = group;
|
||||
}
|
||||
|
||||
public List<MagicEntity> getEntities() {
|
||||
return entities;
|
||||
}
|
||||
|
||||
@ -89,8 +89,16 @@ public class DefaultMagicResourceService implements MagicResourceService, JsonCo
|
||||
if (event.getAction() == EventAction.DELETE) {
|
||||
event.setEntities(deleteGroup(id));
|
||||
} else if (action != EventAction.CREATE) {
|
||||
// 刷新分组缓存
|
||||
refreshGroup(groupMappings.get(id), storages.get(group.getType()));
|
||||
Resource folder = groupMappings.get(id);
|
||||
folder.readAll();
|
||||
if (folder.exists()) {
|
||||
// 刷新分组缓存
|
||||
refreshGroup(folder, storages.get(group.getType()));
|
||||
} else {
|
||||
this.readAll();
|
||||
treeNode = tree(group.getType()).findTreeNode(it -> it.getId().equals(id));
|
||||
}
|
||||
event.setGroup(groupCache.get(id));
|
||||
event.setEntities(treeNode
|
||||
.flat()
|
||||
.stream()
|
||||
@ -122,8 +130,14 @@ public class DefaultMagicResourceService implements MagicResourceService, JsonCo
|
||||
}
|
||||
} else {
|
||||
Resource resource = fileMappings.get(id);
|
||||
entity = storage.read(resource.read());
|
||||
putFile(storage, entity, resource);
|
||||
resource.readAll();
|
||||
if (resource.exists()) {
|
||||
entity = storage.read(resource.read());
|
||||
putFile(storage, entity, resource);
|
||||
} else {
|
||||
this.readAll();
|
||||
entity = fileCache.get(id);
|
||||
}
|
||||
}
|
||||
publisher.publishEvent(new FileEvent(group.getType(), action, entity, Constants.EVENT_SOURCE_NOTIFY));
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user