java代码实现删除act ru task表中正在执 行的任务
时间: 2024-01-24 14:19:28 浏览: 154
你可以使用以下代码删除正在执行的任务:
```java
public void deleteRunningTask(String taskId) {
RuntimeService runtimeService = processEngine.getRuntimeService();
TaskService taskService = processEngine.getTaskService();
// 获取当前正在执行的任务
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery()
.taskId(taskId)
.finished()
.singleResult();
// 如果任务已经完成,则无法删除
if (historicTaskInstance != null) {
throw new ActivitiException("任务已经完成,无法删除");
}
// 删除任务
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (task != null) {
String executionId = task.getExecutionId();
runtimeService.deleteProcessInstance(executionId, "任务被删除");
} else {
throw new ActivitiException("未找到任务信息");
}
}
```
这段代码首先查询历史任务实例,如果任务已经完成,则无法删除。如果任务正在执行,则获取任务的执行ID并将其删除。注意,这会删除整个流程实例。如果你只想删除单个任务,可以使用`taskService.deleteTask(taskId)`方法。
阅读全文