refactor(basic): 重构渲染机相关代码

- 移除了 RenderWorkerMapper 中的未使用的接口
- 精简了 RenderWorkerEntity 中的字段
-重构了 RenderWorkerRepository 中的缓存逻辑
- 更新了 RenderWorkerService 接口和实现类,使用新的 RenderWorkerRespVO 响应对象
- 调整了 TaskTaskServiceImpl 中的渲染机相关代码,使用新的配置管理方式
This commit is contained in:
2025-09-06 00:18:39 +08:00
parent ffad1c9f59
commit d7c6ce9f40
7 changed files with 375 additions and 130 deletions

View File

@@ -3,6 +3,7 @@ package com.ycwl.basic.service.pc;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity;
import com.ycwl.basic.model.pc.renderWorker.req.RenderWorkerReqQuery;
import com.ycwl.basic.model.pc.renderWorker.resp.RenderWorkerRespVO;
import com.ycwl.basic.utils.ApiResponse;
import java.util.List;
@@ -12,9 +13,9 @@ import java.util.List;
* @Date:2024/12/3 15:07
*/
public interface RenderWorkerService {
ApiResponse<PageInfo<RenderWorkerEntity>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery);
ApiResponse<List<RenderWorkerEntity>> list(RenderWorkerReqQuery renderWorkerReqQuery);
ApiResponse<RenderWorkerEntity> detail(Long id);
ApiResponse<PageInfo<RenderWorkerRespVO>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery);
ApiResponse<List<RenderWorkerRespVO>> list(RenderWorkerReqQuery renderWorkerReqQuery);
ApiResponse<RenderWorkerRespVO> detail(Long id);
ApiResponse<Integer> add(RenderWorkerEntity renderWorker);
ApiResponse<Integer> deleteById(Long id);
ApiResponse<Integer> update(RenderWorkerEntity renderWorker);

View File

@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
import com.ycwl.basic.mapper.RenderWorkerMapper;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity;
import com.ycwl.basic.model.pc.renderWorker.req.RenderWorkerReqQuery;
import com.ycwl.basic.model.pc.renderWorker.resp.RenderWorkerRespVO;
import com.ycwl.basic.model.task.req.ClientStatusReqVo;
import com.ycwl.basic.repository.RenderWorkerRepository;
import com.ycwl.basic.service.pc.RenderWorkerService;
@@ -31,72 +32,96 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
private RenderWorkerRepository renderWorkerRepository;
@Override
public ApiResponse<PageInfo<RenderWorkerEntity>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery) {
public ApiResponse<PageInfo<RenderWorkerRespVO>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery) {
PageHelper.startPage(renderWorkerReqQuery.getPageNum(), renderWorkerReqQuery.getPageSize());
List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery);
list.forEach(worker -> {
List<RenderWorkerRespVO> workerList = list.stream().map(worker -> {
RenderWorkerRespVO resp = new RenderWorkerRespVO();
resp.setId(worker.getId());
resp.setName(worker.getName());
resp.setAccessKey(worker.getAccessKey());
resp.setStatus(worker.getStatus());
resp.setCreateAt(worker.getCreateAt());
resp.setUpdateAt(worker.getUpdateAt());
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus == null) {
return;
return resp;
}
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
resp.setCpuCount(clientStatus.getCpu_count());
resp.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
resp.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
resp.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(clientStatus.getUpdateAt());
});
PageInfo<RenderWorkerEntity> pageInfo = new PageInfo<>(list);
resp.setPlatform(clientStatus.getPlatform());
resp.setRuntimeVersion(clientStatus.getRuntime_version());
resp.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
resp.setVersion(clientStatus.getVersion());
resp.setUpdateAt(clientStatus.getUpdateAt());
return resp;
}).toList();
PageInfo<RenderWorkerRespVO> pageInfo = new PageInfo<>(workerList);
return ApiResponse.success(pageInfo);
}
@Override
public ApiResponse<List<RenderWorkerEntity>> list(RenderWorkerReqQuery renderWorkerReqQuery) {
public ApiResponse<List<RenderWorkerRespVO>> list(RenderWorkerReqQuery renderWorkerReqQuery) {
List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery);
list.forEach(worker -> {
List<RenderWorkerRespVO> workerList = list.stream().map(worker -> {
RenderWorkerRespVO resp = new RenderWorkerRespVO();
resp.setId(worker.getId());
resp.setName(worker.getName());
resp.setAccessKey(worker.getAccessKey());
resp.setStatus(worker.getStatus());
resp.setCreateAt(worker.getCreateAt());
resp.setUpdateAt(worker.getUpdateAt());
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus == null) {
return;
return resp;
}
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
resp.setCpuCount(clientStatus.getCpu_count());
resp.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
resp.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
resp.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(clientStatus.getUpdateAt());
});
return ApiResponse.success(list);
resp.setPlatform(clientStatus.getPlatform());
resp.setRuntimeVersion(clientStatus.getRuntime_version());
resp.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
resp.setVersion(clientStatus.getVersion());
resp.setUpdateAt(clientStatus.getUpdateAt());
return resp;
}).toList();
return ApiResponse.success(workerList);
}
@Override
public ApiResponse<RenderWorkerEntity> detail(Long id) {
RenderWorkerEntity worker = renderWorkerMapper.getById(id);
public ApiResponse<RenderWorkerRespVO> detail(Long id) {
RenderWorkerEntity worker = renderWorkerRepository.getWorker(id);
RenderWorkerRespVO resp = new RenderWorkerRespVO();
resp.setId(worker.getId());
resp.setName(worker.getName());
resp.setAccessKey(worker.getAccessKey());
resp.setStatus(worker.getStatus());
resp.setCreateAt(worker.getCreateAt());
resp.setUpdateAt(worker.getUpdateAt());
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus != null) {
worker.setCpuCount(clientStatus.getCpu_count());
worker.setCpuUsage(clientStatus.getCpu_usage());
resp.setCpuCount(clientStatus.getCpu_count());
resp.setCpuUsage(clientStatus.getCpu_usage());
// 上报的是字节,存储的是兆
worker.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
resp.setMemoryAvailable(clientStatus.getMemory_available().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
resp.setMemoryTotal(clientStatus.getMemory_total().divide(BigDecimal.valueOf(1024 * 1024), RoundingMode.CEILING));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(clientStatus.getUpdateAt());
resp.setPlatform(clientStatus.getPlatform());
resp.setRuntimeVersion(clientStatus.getRuntime_version());
resp.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
resp.setVersion(clientStatus.getVersion());
resp.setUpdateAt(clientStatus.getUpdateAt());
}
return ApiResponse.success(worker);
return ApiResponse.success(resp);
}
@Override
@@ -116,13 +141,11 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Override
public ApiResponse<Integer> deleteById(Long id) {
renderWorkerRepository.clearCache(id);
return ApiResponse.success(renderWorkerMapper.deleteById(id));
}
@Override
public ApiResponse<Integer> update(RenderWorkerEntity renderWorker) {
renderWorkerRepository.clearCache(renderWorker.getId());
int update = renderWorkerMapper.update(renderWorker);
if (update == 0) {
return ApiResponse.fail("渲染机修改失败");
@@ -133,7 +156,6 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Override
public ApiResponse<Integer> updateStatus(Long id) {
renderWorkerRepository.clearCache(id);
return ApiResponse.success(renderWorkerMapper.updateStatus(id));
}
}

View File

@@ -1,6 +1,7 @@
package com.ycwl.basic.service.task.impl;
import cn.hutool.core.date.DateUtil;
import com.ycwl.basic.integration.common.manager.RenderWorkerConfigManager;
import com.ycwl.basic.utils.JacksonUtil;
import com.ycwl.basic.biz.OrderBiz;
import com.ycwl.basic.biz.TaskStatusBiz;
@@ -10,7 +11,6 @@ import com.ycwl.basic.constant.TaskConstant;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.mapper.FaceSampleMapper;
import com.ycwl.basic.mapper.MemberMapper;
import com.ycwl.basic.mapper.RenderWorkerMapper;
import com.ycwl.basic.mapper.SourceMapper;
import com.ycwl.basic.mapper.TaskMapper;
import com.ycwl.basic.mapper.TemplateMapper;
@@ -134,7 +134,6 @@ public class TaskTaskServiceImpl implements TaskService {
if (worker == null) {
return null;
}
worker.setOnline(1);
worker.setName(null);
worker.setStatus(null);
// get status
@@ -174,7 +173,6 @@ 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();
@@ -540,10 +538,11 @@ public class TaskTaskServiceImpl implements TaskService {
if (worker == null) {
return null;
}
RenderWorkerConfigManager config = repository.getWorkerConfigManager(worker.getId());
IStorageAdapter adapter;
try {
adapter = StorageFactory.get(worker.getStoreType());
adapter.loadConfig(JacksonUtil.parseObject(worker.getStoreConfigJson(), Map.class));
adapter = StorageFactory.get(config.getString("store_type"));
adapter.loadConfig(config.getObject("store_config_json", Map.class));
} catch (Exception e) {
adapter = scenicService.getScenicStorageAdapter(task.getScenicId());
}