feat: 2.6.0

1. 广播相同IP重复执行问题
This commit is contained in:
byteblogs168 2024-01-22 23:05:43 +08:00
parent bb322f580d
commit 02886ab75a

View File

@ -51,20 +51,20 @@ public class BroadcastTaskGenerator extends AbstractJobTaskGenerator {
Set<String> clientInfoSet = new HashSet<>(serverNodes.size());
List<JobTask> jobTasks = new ArrayList<>(serverNodes.size());
for (RegisterNodeInfo serverNode : serverNodes) {
String clientInfo = ClientInfoUtils.generate(serverNode);
// 若存在相同的IP信息则去重
if (clientInfoSet.contains(clientInfo)) {
String address = serverNode.address();
if (clientInfoSet.contains(address)) {
continue;
}
JobTask jobTask = JobTaskConverter.INSTANCE.toJobTaskInstance(context);
jobTask.setClientInfo(clientInfo);
jobTask.setClientInfo(ClientInfoUtils.generate(serverNode));
jobTask.setArgsType(context.getArgsType());
jobTask.setArgsStr(context.getArgsStr());
jobTask.setTaskStatus(JobTaskStatusEnum.RUNNING.getStatus());
jobTask.setResultMessage(Optional.ofNullable(jobTask.getResultMessage()).orElse(StrUtil.EMPTY));
Assert.isTrue(1 == jobTaskMapper.insert(jobTask), () -> new EasyRetryServerException("新增任务实例失败"));
clientInfoSet.add(clientInfo);
clientInfoSet.add(address);
jobTasks.add(jobTask);
}