perf: 清流所有流程接口性能优化

This commit is contained in:
2023-10-26 17:22:09 +08:00
parent 992f44f2d3
commit 7103f6d893
@@ -30,6 +30,7 @@ import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines; import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService; import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.delegate.BaseExecutionListener; import org.activiti.engine.delegate.BaseExecutionListener;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.*; import org.activiti.engine.repository.*;
@@ -446,25 +447,28 @@ public class ModelerController {
// 获取流程引擎 // 获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 获取RuntimeService并删除所有流程实例 // 获取RuntimeService并批量删除所有流程实例
List<ProcessInstance> instances = processEngine.getRuntimeService() RuntimeService runtimeService = processEngine.getRuntimeService();
.createProcessInstanceQuery() List<String> instanceIds = runtimeService.createProcessInstanceQuery().list()
.list(); .stream()
for (ProcessInstance instance : instances) { .map(ProcessInstance::getId)
processEngine.getRuntimeService() .collect(Collectors.toList());
.deleteProcessInstance(instance.getId(), "Cleanup all instances"); for (String id : instanceIds) {
runtimeService.deleteProcessInstance(id, "Cleanup all instances");
} }
// 获取RepositoryService并删除所有流程 // 获取RepositoryService并批量删除所有流程
List<ProcessDefinition> definitions = processEngine.getRepositoryService() RepositoryService repositoryService = processEngine.getRepositoryService();
.createProcessDefinitionQuery() List<String> deploymentIds = repositoryService.createProcessDefinitionQuery().list()
.list(); .stream()
for (ProcessDefinition definition : definitions) { .map(ProcessDefinition::getDeploymentId)
processEngine.getRepositoryService() .collect(Collectors.toList());
.deleteDeployment(definition.getDeploymentId(), true); for (String id : deploymentIds) {
repositoryService.deleteDeployment(id, true);
} }
} }
} }