参考: 尊重原创:Activiti;如何删除工作流/流程引擎 act_hi_procinst 错误实例数据 proc_inst_id__秋̶᭄ꦿ攻城狮࿆ྂ-CSDN博客
实际处理中如果查询到多条数据,紧急处理方法:
1.查询数据 2.删除错误数据
参考如上
优化之后的处理:
原来查询逻辑:
Task existTask = processEngine.getTaskService().createTaskQuery()
.processInstanceBusinessKey(subModel.getBusinessId()).singleResult();
只查询单个的,查询到多个的会报错。
改为查询多个,按时间排序,并取最新一个:
List<Task> taskList = processEngine.getTaskService().createTaskQuery()
.processInstanceBusinessKey(subModel.getBusinessId()).orderByTaskCreateTime().asc().list();
Task task = taskList.get(taskList.size()-1);
这样即使再出现多条记录也会按照最新的记录走流程,不会影响流程,只会多些冗余数据。