feat: 3.1.0
1. 修复工作流节点排序问题
This commit is contained in:
parent
e7f37e4fd5
commit
71438543f6
@ -49,6 +49,8 @@ import com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowNode;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.graph.ElementOrder;
|
||||
import com.google.common.graph.Graph;
|
||||
import com.google.common.graph.GraphBuilder;
|
||||
import com.google.common.graph.MutableGraph;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -85,7 +87,8 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
@Transactional
|
||||
public boolean saveWorkflow(WorkflowRequestVO workflowRequestVO) {
|
||||
log.info("保存工作流信息:{}", JsonUtil.toJsonString(workflowRequestVO));
|
||||
MutableGraph<Long> graph = GraphBuilder.directed().allowsSelfLoops(false).build();
|
||||
MutableGraph<Long> graph = createGraph();
|
||||
|
||||
// 添加虚拟头节点
|
||||
graph.addNode(SystemConstants.ROOT);
|
||||
|
||||
@ -118,6 +121,17 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
return true;
|
||||
}
|
||||
|
||||
private MutableGraph<Long> createGraph() {
|
||||
return GraphBuilder.directed().nodeOrder(ElementOrder.sorted((Comparator<Long>) (o1, o2) -> {
|
||||
if (o1 - o2 > 0) {
|
||||
return 1;
|
||||
} else if (o1 - o2 < 0) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
})).incidentEdgeOrder(ElementOrder.stable()).allowsSelfLoops(false).build();
|
||||
}
|
||||
private static Long calculateNextTriggerAt(final WorkflowRequestVO workflowRequestVO, Long time) {
|
||||
checkExecuteInterval(workflowRequestVO);
|
||||
|
||||
@ -231,7 +245,8 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
Workflow workflow = workflowMapper.selectById(workflowRequestVO.getId());
|
||||
Assert.notNull(workflow, () -> new EasyRetryServerException("工作流不存在"));
|
||||
|
||||
MutableGraph<Long> graph = GraphBuilder.directed().allowsSelfLoops(false).build();
|
||||
MutableGraph<Long> graph = createGraph();
|
||||
|
||||
// 添加虚拟头节点
|
||||
graph.addNode(SystemConstants.ROOT);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user