feat: 2.6.0
1. 广播相同IP重复执行问题
This commit is contained in:
parent
a1347435d8
commit
538298833d
@ -18,10 +18,9 @@ import org.springframework.stereotype.Component;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Optional;
|
import java.util.stream.Collectors;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author www.byteblogs.com
|
* @author www.byteblogs.com
|
||||||
@ -49,8 +48,15 @@ public class BroadcastTaskGenerator extends AbstractJobTaskGenerator {
|
|||||||
return Lists.newArrayList();
|
return Lists.newArrayList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set<String> clientInfoSet = new HashSet<>(serverNodes.size());
|
||||||
List<JobTask> jobTasks = new ArrayList<>(serverNodes.size());
|
List<JobTask> jobTasks = new ArrayList<>(serverNodes.size());
|
||||||
for (RegisterNodeInfo serverNode : serverNodes) {
|
for (RegisterNodeInfo serverNode : serverNodes) {
|
||||||
|
// 若存在相同的IP信息则去重
|
||||||
|
String address = serverNode.address();
|
||||||
|
if (clientInfoSet.contains(address)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
JobTask jobTask = JobTaskConverter.INSTANCE.toJobTaskInstance(context);
|
JobTask jobTask = JobTaskConverter.INSTANCE.toJobTaskInstance(context);
|
||||||
jobTask.setClientInfo(ClientInfoUtils.generate(serverNode));
|
jobTask.setClientInfo(ClientInfoUtils.generate(serverNode));
|
||||||
jobTask.setArgsType(context.getArgsType());
|
jobTask.setArgsType(context.getArgsType());
|
||||||
@ -58,6 +64,7 @@ public class BroadcastTaskGenerator extends AbstractJobTaskGenerator {
|
|||||||
jobTask.setTaskStatus(JobTaskStatusEnum.RUNNING.getStatus());
|
jobTask.setTaskStatus(JobTaskStatusEnum.RUNNING.getStatus());
|
||||||
jobTask.setResultMessage(Optional.ofNullable(jobTask.getResultMessage()).orElse(StrUtil.EMPTY));
|
jobTask.setResultMessage(Optional.ofNullable(jobTask.getResultMessage()).orElse(StrUtil.EMPTY));
|
||||||
Assert.isTrue(1 == jobTaskMapper.insert(jobTask), () -> new EasyRetryServerException("新增任务实例失败"));
|
Assert.isTrue(1 == jobTaskMapper.insert(jobTask), () -> new EasyRetryServerException("新增任务实例失败"));
|
||||||
|
clientInfoSet.add(address);
|
||||||
jobTasks.add(jobTask);
|
jobTasks.add(jobTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user