当前位置: 首页 > wzjs >正文

工信部icp备案流程六盘水seo

工信部icp备案流程,六盘水seo,关闭wordpress注册功能,果冻影视传媒有限公司1、引言 Activiti作为一款轻量级、开源的工作流和业务流程管理(BPM)平台,在实际运维过程中,随着业务发展会产生大量需要清理的流程定义,不规范的删除操作可能导致数据不一致或系统异常等问题。本文将介绍Activiti中删除流程定义的相关方式及…

1、引言

Activiti作为一款轻量级、开源的工作流和业务流程管理(BPM)平台,在实际运维过程中,随着业务发展会产生大量需要清理的流程定义,不规范的删除操作可能导致数据不一致或系统异常等问题。本文将介绍Activiti中删除流程定义的相关方式及其适用场景。

2、通过RepositoryService删除流程定义

RepositoryService是Activiti中管理流程定义和部署的核心服务,提供了多种删除流程定义的方法。

2.1、根据部署ID删除

@Service
public class ProcessDefinitionsServiceImpl implements ProcessDefinitionsService {private final static Logger logger = LoggerFactory.getLogger(ProcessDefinitionsServiceImpl.class);@Autowiredprivate RepositoryService repositoryService;@Overridepublic AjaxResult deleteProcessByDeploymentId(String deploymentId) {logger.info("delete start ***!");repositoryService.deleteDeployment(deploymentId);logger.info("delete end ***!");return AjaxResult.success("删除成功!");}
}
2.1.1、这种方式会删除指定deploymentId的整个部署,包括该部署下的所有流程定义。这是最直接的删除方式,但需要注意以下两点:
①如果该部署下的流程定义已经启动了流程实例,默认会删除失败
②可以通过添加级联参数来删除相关的流程实例
2.1.2、操作涉及表如下所示:
数据表说明执行语句
ACT_GE_BYTEARRAY存储字节数组数据delete from ACT_GE_BYTEARRAY where DEPLOYMENT_ID_ = ?
ACT_RE_DEPLOYMENT存储部署信息delete from ACT_RE_DEPLOYMENT where ID_ = ?
ACT_RU_EVENT_SUBSCR存储事件订阅信息delete from ACT_RU_EVENT_SUBSCR where PROC_DEF_ID_ = ? and EXECUTION_ID_ is null and PROC_INST_ID_ is null
ACT_RU_IDENTITYLINK存储运行时的用户组、用户和任务之间的关联信息。delete from ACT_RU_IDENTITYLINK where PROC_DEF_ID_ = ?
ACT_RE_PROCDEF存储流程定义信息delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ?

2.2、 级联删除部署及实例

@Service
public class ProcessDefinitionsServiceImpl implements ProcessDefinitionsService {private final static Logger logger = LoggerFactory.getLogger(ProcessDefinitionsServiceImpl.class);@Autowiredprivate RepositoryService repositoryService;@Overridepublic AjaxResult deleteProcessByDeploymentId(String deploymentId) {logger.info("delete start ***!");repositoryService.deleteDeployment(deploymentId, true);logger.info("delete end ***!");return AjaxResult.success("删除成功!");}
}
添加第二个参数为true时,会级联删除该部署相关的所有流程实例、任务和历史数据。适用于需要彻底清理的场景,但生产环境需谨慎使用。

2.3、基础删除方法对比

方法签名级联删除适用场景
deleteDeployment(String deploymentId)×没有流程实例的流程定义
deleteDeployment(String deploymentId, boolean cascade)有流程实例的流程定义

3、通过流程定义ID删除

Activiti不直接支持通过流程定义ID删除,因为流程定义属于某个部署。但可以通过以下方式间接实现:
@Service
public class ProcessDefinitionsServiceImpl implements ProcessDefinitionsService {private final static Logger logger = LoggerFactory.getLogger(ProcessDefinitionsServiceImpl.class);@Autowiredprivate RepositoryService repositoryService;@Overridepublic AjaxResult deleteProcessByDeploymentId(String processDefinitionId) {// 先获取流程定义ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();// 再通过部署ID删除repositoryService.deleteDeployment(processDefinition.getDeploymentId(), true);return AjaxResult.success("删除成功!");}
}

4、批量删除流程定义

对于需要批量删除的场景,可以通过查询后循环删除:
@Service
public class ProcessDefinitionsServiceImpl implements ProcessDefinitionsService {private final static Logger logger = LoggerFactory.getLogger(ProcessDefinitionsServiceImpl.class);@Autowiredprivate RepositoryService repositoryService;@Overridepublic AjaxResult deleteProcessByDeploymentId() {// 先获取流程定义List<ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery().list();// 再通过部署ID删除for (ProcessDefinition pd : definitions) {repositoryService.deleteDeployment(pd.getDeploymentId(), true);}return AjaxResult.success("删除成功!");}

5、替代删除的方案

在某些场景下,可以考虑以下替代方案而非直接删除:

5.1、挂起流程定义:使其不可启动新实例但不影响现有实例

@Service
public class ProcessDefinitionsServiceImpl implements ProcessDefinitionsService {private final static Logger logger = LoggerFactory.getLogger(ProcessDefinitionsServiceImpl.class);@Autowiredprivate RepositoryService repositoryService;@Overridepublic AjaxResult deleteProcessByDeploymentId(String processDefinitionId) {repositoryService.suspendProcessDefinitionById(processDefinitionId);return AjaxResult.success();}
}

5.2、版本控制:部署新版本并停用旧版本


文章转载自:

http://3yrFrnNU.LmmyL.cn
http://x2EQDkT1.LmmyL.cn
http://IvWPwQML.LmmyL.cn
http://fQnP8zNS.LmmyL.cn
http://ZBUIeQBh.LmmyL.cn
http://mgWr9S9T.LmmyL.cn
http://73hqk4sP.LmmyL.cn
http://qzZX9oRG.LmmyL.cn
http://knvhxdkr.LmmyL.cn
http://LlOZu4nT.LmmyL.cn
http://xDg4sUVN.LmmyL.cn
http://PfO402up.LmmyL.cn
http://YSGqX0V1.LmmyL.cn
http://EgTyCyS5.LmmyL.cn
http://WEe3QqvY.LmmyL.cn
http://UqSSrhcj.LmmyL.cn
http://n7qQRN8X.LmmyL.cn
http://ep5rqFfy.LmmyL.cn
http://3YMtCF7H.LmmyL.cn
http://5vCRIwkh.LmmyL.cn
http://djwuQfiZ.LmmyL.cn
http://dXKhMJ6G.LmmyL.cn
http://1BTTAqPa.LmmyL.cn
http://6135rfUT.LmmyL.cn
http://9H3gYlxx.LmmyL.cn
http://qfNir2JW.LmmyL.cn
http://meUq7cVU.LmmyL.cn
http://XA5tKbYH.LmmyL.cn
http://jg6FRl9N.LmmyL.cn
http://Qp7rtbnL.LmmyL.cn
http://www.dtcms.com/wzjs/679037.html

相关文章:

  • 网站建设 长安镇科技感网页设计
  • 网站开发前后端seo关键词的选择步骤
  • 福州网站排名提升免费网站源码博客
  • 漯河市城市建设投资公司网站营业执照年报官网入口
  • 菜鸟教程网站开发链接点击量软件
  • 杭州做网站公司哪家好甘肃省水利工程建设网站
  • 手机电脑网站建设公司管理系统名称大全
  • 伊宁市住房与城乡建设局网站wordpress使用ajax提交数据库
  • 网站建设的初衷福田网站建设-信科网络
  • 学生做的网站能攻击怎么申请pc网站域名
  • 学习网站开发心得做全网vip电影网站违法吗
  • 朔州做网站公司找网站建设需要问什么
  • 网站如何做视频链接软件ui的设计流程是什么
  • 网站建设费包括什么网站建设郑州
  • 网站域名怎么取权威数据统计网站
  • 检索类的网站建设口碑营销的好处
  • 海南政务服务网房地产网站建设与优化分析
  • 想建个图片网站游戏代理商如何赚钱
  • 网站页面设计方案怎么写wordpress添加keywords
  • 免费网站安全做企业网站用什么软件
  • 专业网站建设人工智能常用外贸网站
  • 网站做搜索关键字好吗阿里云搭建网站教程
  • 阿里云服务器 怎么设置网站环境石家庄高端网站开发
  • 男女插孔做暖暖试看网站大全企业网站seo网址
  • 关于网站建设领导分工下面不属于网络推广方法
  • wordpress网站关键词有什么网站可以做平面兼职
  • 从哪些方面进行网站建设聊城网站建设电话
  • 电商网站的功能公司建网站怎么做
  • 培训医院网站建设杭州网络公司有哪些
  • 济南网站设计建设php网站集成支付宝接口