add - 新增一些安全优化
This commit is contained in:
parent
9bd34e118f
commit
d7cbf9a01e
@ -73,6 +73,8 @@ import org.flowable.spring.SpringProcessEngineConfiguration;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.variable.api.history.HistoricVariableInstance;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
@ -352,6 +354,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
||||
public Boolean abortProcessInstance(BpmnProcessInstanceAbortDTO dto) {
|
||||
CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor();
|
||||
commandExecutor.execute(new CustomAbortProcessInstanceCmd(dto.getProcessInstanceId(), dto.getTenantId(),
|
||||
|
||||
@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import java.io.InputStream;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
|
||||
|
||||
@ -101,15 +103,19 @@ public class TestController {
|
||||
.unfinished()
|
||||
.list();
|
||||
log.info("待系统中止的流程实例数: {}", list.size());
|
||||
ExecutorService executorService = Executors.newFixedThreadPool(3);
|
||||
list.forEach(i -> {
|
||||
try {
|
||||
BpmnProcessInstanceAbortDTO abort = new BpmnProcessInstanceAbortDTO();
|
||||
abort.setProcessInstanceId(i.getId());
|
||||
abort.setReason("系统超时中止");
|
||||
bpmnProcessInstanceService.abortProcessInstance(abort);
|
||||
} catch (Exception e) {
|
||||
log.warn("系统批量中止流程: {}, 发生异常: {}", i.getId(), e.getMessage());
|
||||
}
|
||||
executorService.submit(() -> {
|
||||
try {
|
||||
log.info("当前中止的流程: {}", i.getId());
|
||||
BpmnProcessInstanceAbortDTO abort = new BpmnProcessInstanceAbortDTO();
|
||||
abort.setProcessInstanceId(i.getId());
|
||||
abort.setReason("系统超时中止");
|
||||
bpmnProcessInstanceService.abortProcessInstance(abort);
|
||||
} catch (Exception e) {
|
||||
log.warn("系统批量中止流程: {}, 发生异常: {}", i.getId(), e.getMessage());
|
||||
}
|
||||
});
|
||||
});
|
||||
return CommonResponse.success(true);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user