Kaynağa Gözat

缓存优化

caixiaofeng 7 ay önce
ebeveyn
işleme
a9d6fba21a

+ 3 - 9
flow-common/flow-common-flowable-starter/src/main/java/com/flow/flowable/loader/FlowableLoaderClass.java

@@ -27,17 +27,11 @@ public class FlowableLoaderClass implements BeanDefinitionRegistryPostProcessor,
         serializableFlowableClassList.add("org.flowable.bpmn.model.GraphicInfo");
         serializableFlowableClassList.add("org.flowable.common.engine.impl.event.FlowableEventSupport");
         serializableFlowableClassList.add("org.flowable.bpmn.model.BpmnDiEdge");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.persistence.entity.AbstractEntity");
         serializableFlowableClassList.add("org.flowable.bpmn.model.ExtensionAttribute");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.cfg.SpringBeanFactoryProxyMap");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.el.FlowableAstFunctionCreator");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.el.DefaultExpressionManager");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.de.odysseus.el.tree.Node");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.de.odysseus.el.tree.impl.ast.AstNode");
-        // serializableFlowableClassList.add("org.flowable.common.engine.impl.el.function.AbstractFlowableVariableExpressionFunction");
-        serializableFlowableClassList.add("org.flowable.common.engine.impl.persistence.deploy.DefaultDeploymentCache");
+        serializableFlowableClassList.add("org.flowable.common.engine.impl.persistence.entity.AbstractEntity");
         serializableFlowableClassList.add("org.flowable.engine.impl.delegate.invocation.DefaultDelegateInterceptor");
-        // serializableFlowableClassList.add("org.flowable.common.engine.api.delegate.FlowableFunctionDelegate");
+        serializableFlowableClassList.add("org.flowable.common.engine.api.delegate.FlowableFunctionDelegate");
+        serializableFlowableClassList.add("org.flowable.common.engine.impl.el.FlowableAstFunctionCreator");
         FlowableSerializable flowableSerializable = new FlowableSerializable();
         flowableSerializable.setSerializableFlowableClassList(serializableFlowableClassList);
         try {

+ 2 - 9
flow-common/flow-common-flowable-starter/src/main/java/com/flow/flowable/loader/FlowableSerializable.java

@@ -25,18 +25,11 @@ public class FlowableSerializable {
         classPool.insertClassPath(new LoaderClassPath(FlowableSerializable.class.getClassLoader()));
         for (String serializableFlowableClass : serializableFlowableClassList) {
             CtClass ctClass = classPool.get(serializableFlowableClass);
-            if (ctClass.isFrozen()) {
-                ctClass.defrost();
-            }
             ctClass.addInterface(classPool.get("java.io.Serializable"));
-            if ("org.flowable.common.engine.impl.el.DefaultExpressionManager".equals(serializableFlowableClass)) {
-                CtField[] fields = ctClass.getFields();
-                Arrays.stream(fields).forEach(field -> field.setModifiers(Modifier.TRANSIENT));
-            }
-            /*if (!ctClass.isInterface()) {
+            if (!ctClass.isInterface()) {
                 CtField field = CtField.make("private static final long serialVersionUID = 1L;", ctClass);
                 ctClass.addField(field);
-            }*/
+            }
             ctClass.toClass();
         }
         classPool.importPackage("org.flowable.engine.impl.util.CommandContextUtil");

+ 1 - 1
flow-workflow/flow-workflow-biz/src/main/java/com/flow/config/CustomDeploymentCache.java

@@ -14,7 +14,7 @@ import java.util.Set;
 public class CustomDeploymentCache implements DeploymentCache<ProcessDefinitionCacheEntry> {
     @Autowired
     private RedisTemplate<String, ProcessDefinitionCacheEntry> jdkRedisTemplate;
-    private final String CachePrefix = "flow:cache:";
+    private final String CachePrefix = "processDefineCache:";
 
     @Override
     public ProcessDefinitionCacheEntry get(String id) {

+ 1 - 0
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowModelServiceImpl.java

@@ -170,6 +170,7 @@ public class FlowModelServiceImpl extends BaseServiceImpl<FlowModelDao, FlowMode
                 .name(flowModel.getName())
                 .category(flowModel.getGroupId().toString())
                 .addBpmnModel(String.format("%s.bpmn20.xml", flowModel.getName()), bpmnModel)
+                // .enableDuplicateFiltering()
                 .deploy();
 
         ProcessDefinition definition = repositoryService.createProcessDefinitionQuery()