各种sql、缓存优化

This commit is contained in:
2025-06-17 14:12:31 +08:00
parent 5895d9c56f
commit fae62ab7c2
11 changed files with 155 additions and 101 deletions

View File

@ -40,28 +40,5 @@ public class FaceSampleController {
public ApiResponse<FaceSampleRespVO> getDetail(@PathVariable("id") Long id) { public ApiResponse<FaceSampleRespVO> getDetail(@PathVariable("id") Long id) {
return FaceSampleService.getById(id); return FaceSampleService.getById(id);
} }
@ApiOperation("添加人脸样本")
@PostMapping("/add")
public ApiResponse<Integer> add(@RequestBody FaceSampleEntity FaceSample) {
return FaceSampleService.add(FaceSample);
}
@ApiOperation("删除人脸样本")
@PostMapping("/deleteById/{id}")
public ApiResponse<Integer> deleteById(@PathVariable Long id) {
return FaceSampleService.deleteById(id);
}
@ApiOperation("批量删除人脸样本")
@PostMapping("/deleteByIds")
public ApiResponse<Integer> deleteByIds(@RequestBody List<Long> ids) {
return FaceSampleService.deleteByIds(ids);
}
@ApiOperation("修改人脸样本信息")
@PostMapping("/update")
public ApiResponse<Integer> update(@RequestBody FaceSampleEntity FaceSample) {
return FaceSampleService.update(FaceSample);
}
} }

View File

@ -315,7 +315,7 @@ public class ViidController {
AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString()); AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString());
if (addFaceResp != null) { if (addFaceResp != null) {
faceSample.setScore(addFaceResp.getScore()); faceSample.setScore(addFaceResp.getScore());
faceSampleMapper.update(faceSample); faceSampleMapper.updateScore(faceSample.getId(), addFaceResp.getScore());
} }
} }
if (deviceConfig != null && Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) { if (deviceConfig != null && Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) {
@ -377,7 +377,7 @@ public class ViidController {
AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString()); AddFaceResp addFaceResp = faceBodyAdapter.addFace(scenicId.toString(), faceSample.getId().toString(), url, newFaceSampleId.toString());
if (addFaceResp != null) { if (addFaceResp != null) {
faceSample.setScore(addFaceResp.getScore()); faceSample.setScore(addFaceResp.getScore());
faceSampleMapper.update(faceSample); faceSampleMapper.updateScore(faceSample.getId(), addFaceResp.getScore());
} }
} }
if (Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) { if (Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) {

View File

@ -27,4 +27,6 @@ public interface FaceSampleMapper {
FaceSampleEntity getEntity(Long faceSampleId); FaceSampleEntity getEntity(Long faceSampleId);
List<FaceSampleEntity> listEntityBeforeDate(Long scenicId, Date endDate); List<FaceSampleEntity> listEntityBeforeDate(Long scenicId, Date endDate);
void updateScore(Long id, Float score);
} }

View File

@ -3,6 +3,7 @@ package com.ycwl.basic.model.task.req;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
@ -15,4 +16,5 @@ public class ClientStatusReqVo {
private BigDecimal memory_total; private BigDecimal memory_total;
private BigDecimal memory_available; private BigDecimal memory_available;
private List<String> support_feature; private List<String> support_feature;
private Date updateAt;
} }

View File

@ -0,0 +1,75 @@
package com.ycwl.basic.repository;
import com.alibaba.fastjson.JSONObject;
import com.ycwl.basic.mapper.RenderWorkerMapper;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity;
import com.ycwl.basic.model.task.req.ClientStatusReqVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.concurrent.TimeUnit;
@Component
public class RenderWorkerRepository {
@Autowired
private RedisTemplate<String, String> redisTemplate;
public static final String RENDER_WORKER_CACHE_KEY = "render_worker:%s";
public static final String RENDER_WORKER_STATUS_CACHE_KEY = "render_worker:host_status:%s";
@Autowired
private RenderWorkerMapper mapper;
public RenderWorkerEntity getWorkerByAccessKey(String accessKey) {
String key = String.format(RENDER_WORKER_CACHE_KEY, accessKey);
if (redisTemplate.hasKey(key)) {
return JSONObject.parseObject(redisTemplate.opsForValue().get(key), RenderWorkerEntity.class);
}
RenderWorkerEntity renderWorker = mapper.findByAccessKey(accessKey);
if (renderWorker != null) {
redisTemplate.opsForValue().set(key, JSONObject.toJSONString(renderWorker), 1, TimeUnit.HOURS);
redisTemplate.opsForValue().set(String.format(RENDER_WORKER_CACHE_KEY, renderWorker.getId()), JSONObject.toJSONString(renderWorker), 1, TimeUnit.HOURS);
}
return renderWorker;
}
public RenderWorkerEntity getWorker(Long id) {
String key = String.format(RENDER_WORKER_CACHE_KEY, id);
if (redisTemplate.hasKey(key)) {
return JSONObject.parseObject(redisTemplate.opsForValue().get(key), RenderWorkerEntity.class);
}
RenderWorkerEntity renderWorker = mapper.getById(id);
if (renderWorker != null) {
redisTemplate.opsForValue().set(key, JSONObject.toJSONString(renderWorker), 1, TimeUnit.HOURS);
redisTemplate.opsForValue().set(String.format(RENDER_WORKER_CACHE_KEY, renderWorker.getAccessKey()), JSONObject.toJSONString(renderWorker), 1, TimeUnit.HOURS);
}
return renderWorker;
}
public void setWorkerHostStatus(Long id, ClientStatusReqVo status) {
String key = String.format(RENDER_WORKER_STATUS_CACHE_KEY, id);
if (status == null) {
return;
}
status.setUpdateAt(new Date());
redisTemplate.opsForValue().set(key, JSONObject.toJSONString(status), 1, TimeUnit.HOURS);
}
public ClientStatusReqVo getWorkerHostStatus(Long id) {
String key = String.format(RENDER_WORKER_STATUS_CACHE_KEY, id);
if (redisTemplate.hasKey(key)) {
String status = redisTemplate.opsForValue().get(key);
return JSONObject.parseObject(status, ClientStatusReqVo.class);
}
return null;
}
public void clearCache(Long id) {
RenderWorkerEntity worker = getWorker(id);
redisTemplate.delete(String.format(RENDER_WORKER_CACHE_KEY, id));
if (worker != null) {
redisTemplate.delete(String.format(RENDER_WORKER_CACHE_KEY, worker.getAccessKey()));
}
redisTemplate.delete(String.format(RENDER_WORKER_STATUS_CACHE_KEY, id));
}
}

View File

@ -2,7 +2,6 @@ package com.ycwl.basic.service.mobile.impl;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.constant.NumberConstant; import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.enums.BizCodeEnum; import com.ycwl.basic.enums.BizCodeEnum;
@ -13,7 +12,6 @@ import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoDTO; import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoDTO;
import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoUpdateDTO; import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoUpdateDTO;
import com.ycwl.basic.model.pc.member.entity.MemberEntity; import com.ycwl.basic.model.pc.member.entity.MemberEntity;
import com.ycwl.basic.model.pc.member.req.MemberReqQuery;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO; import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.model.pc.mp.MpConfigEntity; import com.ycwl.basic.model.pc.mp.MpConfigEntity;
import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.ScenicRepository;
@ -88,13 +86,9 @@ public class AppMemberServiceImpl implements AppMemberService {
throw new AppException(BizCodeEnum.SERVER_UNKONWN_ERROR, "未获取到当前用户openId"); throw new AppException(BizCodeEnum.SERVER_UNKONWN_ERROR, "未获取到当前用户openId");
} }
MemberRespVO memberRespVO = new MemberRespVO();
JwtInfo jwtInfo = new JwtInfo(); JwtInfo jwtInfo = new JwtInfo();
// 根据返回的openId,判断用户是否是新用户,是的话,将用户信息存到数据库; MemberRespVO memberRespVO = memberMapper.getByOpenId(openId.toString());
MemberReqQuery memberReqQuery = new MemberReqQuery(); if (memberRespVO == null) {
memberReqQuery.setOpenId(openId.toString());
List<MemberRespVO> list = memberMapper.list(memberReqQuery);
if (list.isEmpty()) {
MemberEntity memberEntity = new MemberEntity(); MemberEntity memberEntity = new MemberEntity();
memberEntity.setId(SnowFlakeUtil.getLongId()); memberEntity.setId(SnowFlakeUtil.getLongId());
memberEntity.setScenicId(scenicId); memberEntity.setScenicId(scenicId);
@ -107,6 +101,7 @@ public class AppMemberServiceImpl implements AppMemberService {
memberEntity.setProvince(userInfoDTO.getProvince()); memberEntity.setProvince(userInfoDTO.getProvince());
memberEntity.setCity(userInfoDTO.getCity()); memberEntity.setCity(userInfoDTO.getCity());
memberMapper.add(memberEntity); memberMapper.add(memberEntity);
memberRespVO = new MemberRespVO();
memberRespVO.setId(memberEntity.getId()); memberRespVO.setId(memberEntity.getId());
memberRespVO.setOpenId(memberEntity.getOpenId()); memberRespVO.setOpenId(memberEntity.getOpenId());
memberRespVO.setNickname(memberEntity.getNickname()); memberRespVO.setNickname(memberEntity.getNickname());
@ -117,18 +112,6 @@ public class AppMemberServiceImpl implements AppMemberService {
memberRespVO.setProvince(memberEntity.getProvince()); memberRespVO.setProvince(memberEntity.getProvince());
memberRespVO.setCity(memberEntity.getCity()); memberRespVO.setCity(memberEntity.getCity());
memberRespVO.setScenicId(memberEntity.getScenicId()); memberRespVO.setScenicId(memberEntity.getScenicId());
} else {
MemberRespVO temp = list.getFirst();
memberRespVO.setId(temp.getId());
memberRespVO.setOpenId(temp.getOpenId());
memberRespVO.setNickname(temp.getNickname());
memberRespVO.setAvatarUrl(temp.getAvatarUrl());
memberRespVO.setAgreement(1);
memberRespVO.setPhone(temp.getPhone());
memberRespVO.setCountry(temp.getCountry());
memberRespVO.setProvince(temp.getProvince());
memberRespVO.setCity(temp.getCity());
memberRespVO.setScenicId(temp.getScenicId());
} }
jwtInfo.setUserId(memberRespVO.getId()); jwtInfo.setUserId(memberRespVO.getId());
jwtInfo.setName(memberRespVO.getNickname()); jwtInfo.setName(memberRespVO.getNickname());

View File

@ -20,8 +20,5 @@ public interface FaceSampleService {
ApiResponse<List<FaceSampleRespVO>> list(FaceSampleReqQuery faceSampleReqQuery); ApiResponse<List<FaceSampleRespVO>> list(FaceSampleReqQuery faceSampleReqQuery);
ApiResponse<FaceSampleRespVO> getById(Long id); ApiResponse<FaceSampleRespVO> getById(Long id);
ApiResponse<Integer> add(FaceSampleEntity face); ApiResponse<Integer> add(FaceSampleEntity face);
ApiResponse<Integer> deleteById(Long id);
ApiResponse<Integer> deleteByIds(List<Long> ids);
ApiResponse<Integer> update(FaceSampleEntity face);
} }

View File

@ -50,31 +50,4 @@ public class FaceSampleServiceImpl implements FaceSampleService {
} }
return ApiResponse.success(i); return ApiResponse.success(i);
} }
@Override
public ApiResponse<Integer> deleteById(Long id) {
int i = faceSampleMapper.deleteById(id);
if (i == 0) {
return ApiResponse.fail("删除失败");
}
return ApiResponse.success(i);
}
@Override
public ApiResponse<Integer> deleteByIds(List<Long> ids) {
int i = faceSampleMapper.deleteByIds(ids);
if (i == 0) {
return ApiResponse.fail("删除失败");
}
return ApiResponse.success(i);
}
@Override
public ApiResponse<Integer> update(FaceSampleEntity faceSample) {
int i = faceSampleMapper.update(faceSample);
if (i == 0) {
return ApiResponse.fail("修改失败");
}
return ApiResponse.success(i);
}
} }

View File

@ -5,6 +5,8 @@ import com.github.pagehelper.PageInfo;
import com.ycwl.basic.mapper.RenderWorkerMapper; import com.ycwl.basic.mapper.RenderWorkerMapper;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity; 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.req.RenderWorkerReqQuery;
import com.ycwl.basic.model.task.req.ClientStatusReqVo;
import com.ycwl.basic.repository.RenderWorkerRepository;
import com.ycwl.basic.service.pc.RenderWorkerService; import com.ycwl.basic.service.pc.RenderWorkerService;
import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.SnowFlakeUtil; import com.ycwl.basic.utils.SnowFlakeUtil;
@ -12,6 +14,8 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List; import java.util.List;
/** /**
@ -23,23 +27,76 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Autowired @Autowired
private RenderWorkerMapper renderWorkerMapper; private RenderWorkerMapper renderWorkerMapper;
@Autowired
private RenderWorkerRepository renderWorkerRepository;
@Override @Override
public ApiResponse<PageInfo<RenderWorkerEntity>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery) { public ApiResponse<PageInfo<RenderWorkerEntity>> pageQuery(RenderWorkerReqQuery renderWorkerReqQuery) {
PageHelper.startPage(renderWorkerReqQuery.getPageNum(), renderWorkerReqQuery.getPageSize()); PageHelper.startPage(renderWorkerReqQuery.getPageNum(), renderWorkerReqQuery.getPageSize());
List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery); List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery);
list.forEach(worker -> {
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus == null) {
return;
}
worker.setCpuCount(clientStatus.getCpu_count());
worker.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));
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); PageInfo<RenderWorkerEntity> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo); return ApiResponse.success(pageInfo);
} }
@Override @Override
public ApiResponse<List<RenderWorkerEntity>> list(RenderWorkerReqQuery renderWorkerReqQuery) { public ApiResponse<List<RenderWorkerEntity>> list(RenderWorkerReqQuery renderWorkerReqQuery) {
return ApiResponse.success(renderWorkerMapper.list(renderWorkerReqQuery)); List<RenderWorkerEntity> list = renderWorkerMapper.list(renderWorkerReqQuery);
list.forEach(worker -> {
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus == null) {
return;
}
worker.setCpuCount(clientStatus.getCpu_count());
worker.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));
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);
} }
@Override @Override
public ApiResponse<RenderWorkerEntity> detail(Long id) { public ApiResponse<RenderWorkerEntity> detail(Long id) {
return ApiResponse.success(renderWorkerMapper.getById(id)); RenderWorkerEntity worker = renderWorkerMapper.getById(id);
ClientStatusReqVo clientStatus = renderWorkerRepository.getWorkerHostStatus(worker.getId());
if (clientStatus != null) {
worker.setCpuCount(clientStatus.getCpu_count());
worker.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));
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(worker);
} }
@Override @Override
@ -59,11 +116,13 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Override @Override
public ApiResponse<Integer> deleteById(Long id) { public ApiResponse<Integer> deleteById(Long id) {
renderWorkerRepository.clearCache(id);
return ApiResponse.success(renderWorkerMapper.deleteById(id)); return ApiResponse.success(renderWorkerMapper.deleteById(id));
} }
@Override @Override
public ApiResponse<Integer> update(RenderWorkerEntity renderWorker) { public ApiResponse<Integer> update(RenderWorkerEntity renderWorker) {
renderWorkerRepository.clearCache(renderWorker.getId());
int update = renderWorkerMapper.update(renderWorker); int update = renderWorkerMapper.update(renderWorker);
if (update == 0) { if (update == 0) {
return ApiResponse.fail("渲染机修改失败"); return ApiResponse.fail("渲染机修改失败");
@ -74,6 +133,7 @@ public class RenderWorkerServiceImpl implements RenderWorkerService {
@Override @Override
public ApiResponse<Integer> updateStatus(Long id) { public ApiResponse<Integer> updateStatus(Long id) {
renderWorkerRepository.clearCache(id);
return ApiResponse.success(renderWorkerMapper.updateStatus(id)); return ApiResponse.success(renderWorkerMapper.updateStatus(id));
} }
} }

View File

@ -45,6 +45,7 @@ import com.ycwl.basic.notify.entity.NotifyContent;
import com.ycwl.basic.notify.enums.NotifyType; import com.ycwl.basic.notify.enums.NotifyType;
import com.ycwl.basic.repository.DeviceRepository; import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.RenderWorkerRepository;
import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.repository.VideoRepository; import com.ycwl.basic.repository.VideoRepository;
import com.ycwl.basic.repository.VideoTaskRepository; import com.ycwl.basic.repository.VideoTaskRepository;
@ -81,14 +82,10 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
public class TaskTaskServiceImpl implements TaskService { public class TaskTaskServiceImpl implements TaskService {
@Autowired
private TemplateMapper templateMapper;
@Autowired
private RenderWorkerMapper renderWorkerMapper;
@Autowired @Autowired
private TaskMapper taskMapper; private TaskMapper taskMapper;
@Autowired @Autowired
private RedisTemplate<String, String> redisTemplate; private RenderWorkerRepository repository;
@Autowired @Autowired
private FaceMapper faceMapper; private FaceMapper faceMapper;
@Autowired @Autowired
@ -124,13 +121,12 @@ public class TaskTaskServiceImpl implements TaskService {
@Autowired @Autowired
private VideoReUploader videoReUploader; private VideoReUploader videoReUploader;
private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) { private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) {
String accessKey = req.getAccessKey(); String accessKey = req.getAccessKey();
if (accessKey == null) { if (accessKey == null) {
return null; return null;
} }
return renderWorkerMapper.findByAccessKey(accessKey); return repository.getWorkerByAccessKey(accessKey);
} }
@Override @Override
@ -144,23 +140,7 @@ public class TaskTaskServiceImpl implements TaskService {
worker.setStatus(null); worker.setStatus(null);
// get status // get status
ClientStatusReqVo clientStatus = req.getClientStatus(); ClientStatusReqVo clientStatus = req.getClientStatus();
if (clientStatus != null) { repository.setWorkerHostStatus(worker.getId(), clientStatus);
// 临时这么用下
worker.setCpuCount(clientStatus.getCpu_count());
worker.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));
worker.setPlatform(clientStatus.getPlatform());
worker.setRuntimeVersion(clientStatus.getRuntime_version());
worker.setSupportFeature(String.join(",", clientStatus.getSupport_feature()));
worker.setVersion(clientStatus.getVersion());
worker.setUpdateAt(new Date());
redisTemplate.opsForValue().set(TaskConstant.TASK_ONLINE_WORKER_KEY_PFX + worker.getId(), JSON.toJSONString(clientStatus), 60, TimeUnit.SECONDS);
}
renderWorkerMapper.update(worker);
TaskSyncRespVo resp = new TaskSyncRespVo(); TaskSyncRespVo resp = new TaskSyncRespVo();
// Template // Template
List<TemplateRespVO> updTemplateList; List<TemplateRespVO> updTemplateList;

View File

@ -36,6 +36,11 @@
</set> </set>
where id = #{id} where id = #{id}
</update> </update>
<update id="updateScore">
update face_sample
set score = #{score}
where id = #{id}
</update>
<delete id="deleteById"> <delete id="deleteById">
delete from face_sample where id = #{id} delete from face_sample where id = #{id}
</delete> </delete>