From d7d503212f46974f4aecc9118537991e62b22b75 Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Fri, 18 Jul 2025 14:22:54 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B8=B2=E6=9F=93=E6=9C=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ycwl/basic/mapper/RenderWorkerMapper.java | 2 ++
.../repository/RenderWorkerRepository.java | 17 +++++++++++++++++
.../service/task/impl/TaskTaskServiceImpl.java | 1 +
.../resources/mapper/RenderWorkerMapper.xml | 13 +++++++++++++
4 files changed, 33 insertions(+)
diff --git a/src/main/java/com/ycwl/basic/mapper/RenderWorkerMapper.java b/src/main/java/com/ycwl/basic/mapper/RenderWorkerMapper.java
index 1347426..d27ea7a 100644
--- a/src/main/java/com/ycwl/basic/mapper/RenderWorkerMapper.java
+++ b/src/main/java/com/ycwl/basic/mapper/RenderWorkerMapper.java
@@ -21,4 +21,6 @@ public interface RenderWorkerMapper {
int updateStatus(Long id);
RenderWorkerEntity findByAccessKey(String accessKey);
+
+ int updateHost(Long id, RenderWorkerEntity status);
}
diff --git a/src/main/java/com/ycwl/basic/repository/RenderWorkerRepository.java b/src/main/java/com/ycwl/basic/repository/RenderWorkerRepository.java
index f4adbce..88099af 100644
--- a/src/main/java/com/ycwl/basic/repository/RenderWorkerRepository.java
+++ b/src/main/java/com/ycwl/basic/repository/RenderWorkerRepository.java
@@ -8,6 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.Date;
import java.util.concurrent.TimeUnit;
@@ -52,6 +54,21 @@ public class RenderWorkerRepository {
return;
}
status.setUpdateAt(new Date());
+ RenderWorkerEntity worker = new RenderWorkerEntity();
+ worker.setCpuCount(status.getCpu_count());
+ worker.setCpuUsage(status.getCpu_usage());
+ // 上报的是字节,存储的是兆
+ worker.setMemoryAvailable(status.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
+ worker.setMemoryTotal(status.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
+
+ worker.setPlatform(status.getPlatform());
+ worker.setRuntimeVersion(status.getRuntime_version());
+ worker.setSupportFeature(String.join(",", status.getSupport_feature()));
+ worker.setVersion(status.getVersion());
+ worker.setUpdateAt(status.getUpdateAt());
+ if (!redisTemplate.hasKey(key)) {
+ mapper.updateHost(id, worker);
+ }
redisTemplate.opsForValue().set(key, JSONObject.toJSONString(status), 1, TimeUnit.HOURS);
}
diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java
index fa2d9cb..4a2b0f6 100644
--- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java
+++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java
@@ -175,6 +175,7 @@ public class TaskTaskServiceImpl implements TaskService {
taskList.forEach(task -> {
taskMapper.assignToWorker(task.getId(), worker.getId());
videoTaskRepository.clearTaskCache(task.getId());
+ repository.clearCache(worker.getId());
});
} finally {
lock.unlock();
diff --git a/src/main/resources/mapper/RenderWorkerMapper.xml b/src/main/resources/mapper/RenderWorkerMapper.xml
index eab6ad5..4e47bf2 100644
--- a/src/main/resources/mapper/RenderWorkerMapper.xml
+++ b/src/main/resources/mapper/RenderWorkerMapper.xml
@@ -65,6 +65,19 @@
END)
where id = #{id}
+
+ update render_worker
+ set platform = #{status.platform},
+ runtime_version = #{status.runtimeVersion},
+ version = #{status.version},
+ cpu_count = #{status.cpuCount},
+ cpu_usage = #{status.cpuUsage},
+ memory_total = #{status.memoryTotal},
+ memory_available = #{status.memoryAvailable},
+ support_feature = #{status.supportFeature},
+ update_at = #{status.updateAt}
+ where id = #{id}
+
delete from render_worker where id = #{id}