作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Flowable 新手。我尝试创建 BPMN 部署到 MYSQL,并且部署成功。
但是在取消部署过程中,我将所有部署存储在列表中,然后根据我的条件执行取消部署,就像如果 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();
}
}
最佳答案
为什么不查询部署
而不是查询流程定义?
你可以这样做:
List<Deployment> deployments = repositoryService.createDeploymentQuery()
.deploymentTenantId(companyCode)
.processDefinitionKey(processDefinitionKey)
.list();
然后您可以删除这些部署。请记住,当前执行取消部署的方式可能会删除与您的条件不匹配、但属于另一个流程定义部署的一部分的流程定义(您可以在每个部署中部署多个流程定义)。
关于java - 如何在 Flowable 中执行高效的卸载过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306351/
我是一名优秀的程序员,十分优秀!