Browse Source

REPORT-111337 【设计器性能】缓存方案

fix-lag
Destiny.Lin 9 months ago
parent
commit
e24738dc36
  1. 7
      designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java
  2. 12
      designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java
  3. 2
      designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

7
designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/TableDataFactory.java

@ -11,6 +11,8 @@ import com.fr.data.impl.MultiFieldTableData;
import com.fr.data.impl.MultiTDTableData;
import com.fr.data.impl.RecursionTableData;
import com.fr.data.impl.storeproc.StoreProcedure;
import com.fr.workspace.base.WorkspaceConstants;
import com.fr.workspace.server.remote.RemoteCacheAttributeManager;
import com.fr.design.data.datapane.TableDataNameObjectCreator;
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
import com.fr.design.data.tabledata.tabledatapane.ClassTableDataPane;
@ -26,8 +28,6 @@ import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils;
import com.fr.workspace.WorkContext;
import com.fr.workspace.server.authority.user.UserAuthority;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
@ -177,8 +177,7 @@ public abstract class TableDataFactory {
public static String[] getSortOfChineseNameOfServerData(TableDataConfig tableDataConfig) {
clearAll();
try {
UserAuthority userAuthority = WorkContext.getCurrent().get(UserAuthority.class);
Iterator<String> nameIt = userAuthority.getAuthServerDataSetNames().iterator();
Iterator<String> nameIt = (Iterator<String>) RemoteCacheAttributeManager.getInstance().getValue(WorkspaceConstants.AUTHOR_SERVER_DATA_IT);
while (nameIt.hasNext()) {
String name = nameIt.next();
addName(name, tableDataConfig.getTableData(name));

12
designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java

@ -33,6 +33,7 @@ import com.fr.workspace.Workspace;
import com.fr.workspace.base.WorkspaceConstants;
import com.fr.workspace.connect.WorkspaceConnectionInfo;
import com.fr.workspace.engine.exception.WorkspaceConnectionException;
import com.fr.workspace.server.remote.RemoteCacheAttributeManager;
import com.fr.workspace.server.socket.CustomLogEvent;
import com.fr.workspace.server.socket.LogEventConverter;
import io.socket.client.IO;
@ -118,6 +119,7 @@ public class DesignerSocketIO {
socket = IO.socket(new URI(connectionInfo.getUri()), connectionInfo.getSocketConfig().createOptions());
socket.on(WorkspaceConstants.WS_LOGRECORD, printLog);
socket.on(WorkspaceConstants.CONFIG_MODIFY, modifyConfig);
socket.on(WorkspaceConstants.AUTHOR_SERVER_DATA_IT, authorServerDataIt);
socket.on(Socket.EVENT_CONNECT_ERROR, failRetry);
socket.on(Socket.EVENT_DISCONNECT, disConnectHint);
socket.on(Socket.EVENT_CONNECT, handleConnect);
@ -183,6 +185,7 @@ public class DesignerSocketIO {
if (disConnectHintTimer != null) {
FineLoggerFactory.getLogger().info("cancel disConnectHintTimer");
disConnectHintTimer.cancel();
RemoteCacheAttributeManager.getInstance().stopPolling();
}
}
};
@ -201,6 +204,7 @@ public class DesignerSocketIO {
dealWithSocketDisconnect();
}
status = Status.Disconnected;
RemoteCacheAttributeManager.getInstance().startPolling();
}
};
@ -311,6 +315,14 @@ public class DesignerSocketIO {
}
};
private static final Emitter.Listener authorServerDataIt = new Emitter.Listener() {
@Override
public void call(Object... objects) {
FineLoggerFactory.getLogger().info("[AuthServerDataSetNamesIt] update server data author");
RemoteCacheAttributeManager.getInstance().updateValue(WorkspaceConstants.AUTHOR_SERVER_DATA_IT);
}
};
private static void printLog(Object[] objects, PrintEventLog printEventLog, String prefix) {
for (Object object : objects) {
if (object instanceof Throwable) {

2
designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

@ -145,6 +145,7 @@ import com.fr.start.common.DesignerStartupExecutor;
import com.fr.start.common.DesignerStartupPool;
import com.fr.task.Once;
import com.fr.workspace.WorkContext;
import com.fr.workspace.server.remote.RemoteCacheAttributeManager;
import com.fr.xml.ReportXMLUtils;
import javax.swing.SwingWorker;
@ -205,6 +206,7 @@ public class DesignerActivator extends Activator implements Prepare {
}
}, SupportOSImpl.BBS_USER_LOGIN_PANE);
loadLogAppender();
RemoteCacheAttributeManager.getInstance().updateAllValue();
DesignerSocketIO.update();
DesignerWorkspaceLoader.init();
storePassport();

Loading…
Cancel
Save