From bd21350507ef7073179aeb14e1bdef035945c8ae Mon Sep 17 00:00:00 2001 From: beeajax <1105173470@qq.com> Date: Thu, 20 Jul 2023 13:33:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E5=8F=91=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docus/server/common/SchedulerTask.java | 22 ++++++++++ .../netty/server/ChannelRepository.java | 8 ++++ .../common/process/ChannelProcessor.java | 42 +++++++++++++++++++ .../controller/SchTerminatorController.java | 3 ++ .../server/convert/SchTerminatorConvert.java | 3 +- .../impl/SchTerminatorServiceImpl.java | 4 +- 6 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 collector-scheduling-management/src/main/java/com/docus/server/common/process/ChannelProcessor.java diff --git a/collector-scheduling-management/src/main/java/com/docus/server/common/SchedulerTask.java b/collector-scheduling-management/src/main/java/com/docus/server/common/SchedulerTask.java index 8aa253c..1f814f4 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/common/SchedulerTask.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/common/SchedulerTask.java @@ -1,12 +1,21 @@ package com.docus.server.common; +import com.docus.core.util.json.JSON; +import com.docus.server.common.netty.server.ChannelRepository; +import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.util.Map; +import java.util.Set; + @Component @Slf4j public class SchedulerTask { + @Resource + private ChannelRepository channelRepository; //定时任务 // 5 * * * * ? 在每分钟的5秒执行 @@ -14,6 +23,19 @@ public class SchedulerTask { public void scheduleTask() { try { log.info("定时任务: 开始执行"); + + Map ipToTerminatorCacheMap = channelRepository.getIpToTerminatorCacheMap(); + + Set keySet = ipToTerminatorCacheMap.keySet(); + + for (String clientIp : keySet) { + NettyTerminatorDTO nettyTerminatorDTO = ipToTerminatorCacheMap.get(clientIp); + + System.out.println(JSON.toJSON(nettyTerminatorDTO)); + + } + + //todo:执行业务 log.info("定时任务: 执行完毕"); } catch (Exception e) { diff --git a/collector-scheduling-management/src/main/java/com/docus/server/common/netty/server/ChannelRepository.java b/collector-scheduling-management/src/main/java/com/docus/server/common/netty/server/ChannelRepository.java index 7340159..ed971de 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/common/netty/server/ChannelRepository.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/common/netty/server/ChannelRepository.java @@ -64,10 +64,18 @@ public class ChannelRepository { return IP_CHANNEL_CACHE_MAP.get(key); } + public NettyTerminatorDTO getTerminatorByIp(String key) { + return IP_TERMINATOR_CACHE_MAP.get(key); + } + public Map getIpToChannelCacheMap() { return IP_CHANNEL_CACHE_MAP; } + public Map getIpToTerminatorCacheMap() { + return IP_TERMINATOR_CACHE_MAP; + } + /** * 终端离线 */ diff --git a/collector-scheduling-management/src/main/java/com/docus/server/common/process/ChannelProcessor.java b/collector-scheduling-management/src/main/java/com/docus/server/common/process/ChannelProcessor.java new file mode 100644 index 0000000..4a952e4 --- /dev/null +++ b/collector-scheduling-management/src/main/java/com/docus/server/common/process/ChannelProcessor.java @@ -0,0 +1,42 @@ +package com.docus.server.common.process; + +import com.docus.log.context.TrackContext; +import com.docus.log.processor.AbstractProcessor; +import com.docus.server.common.netty.server.ChannelRepository; +import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO; +import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO; +import com.docus.server.service.ISchTerminatorService; +import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO; + +import javax.annotation.Resource; + +/** + * channel 管理 + */ +public class ChannelProcessor extends AbstractProcessor { + @Resource + private ChannelRepository channelRepository; + @Resource + private ISchTerminatorService iSchTerminatorService; + + @Override + protected Object doProcess(TrackContext context) { + return logProcess(context); + } + + private boolean logProcess(TrackContext context) { + boolean error = context.isError(); + EditSchTerminatorDTO terminatorDTO = (EditSchTerminatorDTO) context.getArgs()[0]; + if (!error) { + SchTerminatorVO terminatorVO = iSchTerminatorService.findById(String.valueOf(terminatorDTO.getId())); + + NettyTerminatorDTO nettyTerminatorDTO = channelRepository.getTerminatorByIp(terminatorVO.getTerminatorIp()); + + nettyTerminatorDTO.setOnlyCollectorIds(terminatorDTO.getOnlyCollectorIds()); + nettyTerminatorDTO.setPriorityCollectorIds(terminatorDTO.getPriorityCollectorIds()); + + + } + return error; + } +} diff --git a/collector-scheduling-management/src/main/java/com/docus/server/controller/SchTerminatorController.java b/collector-scheduling-management/src/main/java/com/docus/server/controller/SchTerminatorController.java index 2209502..65700e2 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/controller/SchTerminatorController.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/controller/SchTerminatorController.java @@ -2,8 +2,10 @@ package com.docus.server.controller; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; +import com.docus.log.annotation.TrackGroup; import com.docus.server.api.scheduling.management.SchTerminatorApi; import com.docus.server.common.netty.server.ChannelRepository; +import com.docus.server.common.process.ChannelProcessor; import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO; @@ -65,6 +67,7 @@ public class SchTerminatorController implements SchTerminatorApi { * @param editSchTerminatorDTO 编辑参数 * @return 成功或失败 */ + @TrackGroup(group = "SchTerminatorController", processor = ChannelProcessor.class) @Override public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) { return iSchTerminatorService.edit(editSchTerminatorDTO); diff --git a/collector-scheduling-management/src/main/java/com/docus/server/convert/SchTerminatorConvert.java b/collector-scheduling-management/src/main/java/com/docus/server/convert/SchTerminatorConvert.java index 959e107..4df7807 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/convert/SchTerminatorConvert.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/convert/SchTerminatorConvert.java @@ -6,6 +6,7 @@ import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminato import com.docus.server.entity.scheduling.management.SchTerminator; import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO; import org.mapstruct.Mapper; +import org.mapstruct.MappingTarget; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; @@ -26,7 +27,7 @@ public interface SchTerminatorConvert { SchTerminator convertDO(AddSchTerminatorDTO addSchTerminatorDTO); @Mappings({}) - SchTerminator convertDO(EditSchTerminatorDTO editSchTerminatorDTO); + SchTerminator convertDO(EditSchTerminatorDTO editSchTerminatorDTO, @MappingTarget SchTerminator schTerminator1); @Mappings({}) SchTerminatorVO convertVO(SchTerminator schTerminator); diff --git a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java index 23a8863..1c1c44a 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java @@ -99,7 +99,9 @@ public class SchTerminatorServiceImpl implements ISchTerminatorService { */ @Override public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) { - SchTerminator schTerminator = SchTerminatorConvert.INSTANCE.convertDO(editSchTerminatorDTO); + Long id = editSchTerminatorDTO.getId(); + SchTerminator schTerminatorDO = iSchTerminatorDao.findById(id); + SchTerminator schTerminator = SchTerminatorConvert.INSTANCE.convertDO(editSchTerminatorDTO, schTerminatorDO); return iSchTerminatorDao.edit(schTerminator); }