Я новичок в Текучем. Я попытался создать BPMN-развертывание на MYSQL, и оно успешно развернуто.
Но в процессе UnDeployment я сохраняю все развертывания в списке, а затем выполняю отмену развертывания на основе My Criteria, например, если оба параметра resouceName и CompanyCode совпадают, мы удаляем развертывание.
Предположим, что если у нас будет больше развертываний, мы не сможем сохранить его в списке, а затем попытаться соответствовать моим критериям со всем списком.
Как я могу выполнить это эффективно.
public void deployResource(String resourceName, InputStream resourceStream,
String companyCode) {
RepositoryService repoService = processEngine.getRepositoryService();
DeploymentBuilder dbuilder = repoService.createDeployment();
dbuilder.addInputStream(resourceName, resourceStream);
dbuilder.name(resourceId);
if (companyCode != null && !companyCode.isEmpty()) {
logger.info("Setting Tenant ID with companyCode {}", companyCode);
dbuilder.tenantId(companyCode);
}
dbuilder.deploy();
}
// Это метод развертывания
public void undeploy(String resourceName, String companyCode) {
try {
logger.debug(LogMarker.ENTRY, "Undeployment Process {} is Started for Resource Name{}", resourceName, companyCode);
RepositoryService repoService = processEngine.getRepositoryService();
List<ProcessDefinition> list = repoService.createProcessDefinitionQuery().processDefinitionResourceNameLike(resourceName)
.processDefinitionTenantIdLike(companyCode).list();
for (ProcessDefinition processDefinition : list) {
repoService.deleteDeployment(processDefinition.getDeploymentId(), true);
logger.debug(LogMarker.EXIT, "Undeployment Process {} is Successfully Completed for Resource Name{}", resourceName);
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}